에러가 나는데 .. 확인 부탁드립니다
10407
2 asked
Member member = new Member();
member.setUsername("kim");
em.persist(member);
List<Member> resultList = em.createNativeQuery(
"select MEMBER_ID, city, street, zipcode, USERNAME from MEMBER")
.getResultList();
for (Member member1 : resultList) {
System.out.println("member1.getUsername() = " + member1.getUsername());
}
java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class jpabook.jpashop2.domain.Member ([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; jpabook.jpashop2.domain.Member is in unnamed module of loader 'app')
at jpabook.jpashop2.JpaMain.main(JpaMain.java:66)
6월 21, 2021 5:34:08 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/jpashop2]
6월 21, 2021 5:34:08 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections close
ERROR: Connection leak detected: there are 1 unclosed connections upon shutting down pool jdbc:h2:tcp://localhost/~/jpashop2
형변환 할수 없다고 하는 에러가 나는데요..
List<Member> resultList = em.createNativeQuery(
"select MEMBER_ID, city, street, zipcode, USERNAME from MEMBER", Member.class)
.getResultList();
이렇게 고치면
ERROR: Column "INSERT_MEMBER" not found [42122-200]
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1613)
at org.hibernate.query.Query.getResultList(Query.java:165)
at jpabook.jpashop2.JpaMain.main(JpaMain.java:63)
이런 에러가 나오고요...
그래서 Member 에서 BaseEntity를 extends 를 않하면
잘 돌아갑니다... 이유가 뭘까요??
BaseEntiy도 첨부하겠습니다
Answer 3
2
안녕하세요 net1560님.
단순 값을 뽑아오고 싶으신거면
List<Member> results = em.createQuery("select m from Member m", Member.class).gerResultList();
.
다음과 같이 createQuery를 jpql로 작성해서 모든 필드를 담은 객체를 타입 명시를 함께 진행하시면 List로 뽑아오실 수 있으실거에요.
위에서는 네이티브 쿼리로 특정 필드를 출력(반환)하도록하였기 때문에 그걸 받을 수 있는 Object 타입의 배열로 처리된거 같네요.
처음 본문에서 남기신 문제는 em.find(baseEntity)를 사용하신게 아니라면 당시 재현가능한 Main메서드의 코드가 있어야 할 것 같습니다.
0
안녕하세요 net1506님.
BaseEntity의 @Column(name="INSERT_MEMBER")와 @Column(name="UPDATE_MEMBER")에서 문제가 발생하는 걸로 보이는데 직접 해결해보시겠어요?
영한님께서는 https://www.inflearn.com/questions/227574
의 댓글의 답글에서도 보시다시피
"답을 바로 드릴 수도 있지만, 그러면 LPD Code님이 더 많은 것을 얻어가실 수 없다 생각합니다."
직접 해결해볼 수 있을 법한 문제에 대해선 수강생분에게 일단 해결을 맡기시거든요. net1506님도 문제 해결을 위해 코드를 이리저리 바꿔보시기도 하셨고, 어느정도 해결의 힌트도 드렸다고 생각하기에 net1506님이 문제 해결을 일단 한번 해보시고 그래도 잘 모르겠다 싶으시면 댓글 남겨주세요.
.
감사합니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
51
2
inheritance startegy 선택시 고려사항
0
32
1
Entity 동등성 비교
0
35
1
실무 조언 관련 질문입니다.
0
61
1
H2데이터베이스 파일 생성
0
71
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
65
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
59
1
JPQL 메소드와 락
0
61
1
Delivery @OneToOne
0
67
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
103
2
UnsupportedOperationException 발생
0
91
3
H2 Database 연결이 안됩니다.
0
99
2
연관관계 매핑 질문드립니다.
0
90
2
h2데이터베이스 실행오류
0
111
2
persistence.xml
0
117
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
85
1
영속성 컨텍스트
0
73
1
JPA 프록시
0
105
1
Native Query와 MyBatis
0
80
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
95
1
임베디드 타입 예시 코드 관련 질문
0
124
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
98
3
인텔리제이 패키지 커서 단축키 질문
0
111
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
150
1

