2014-04-24 5 views
0

기본적으로 COUNTRY, STATE 및 CITY 테이블이 3 개 있습니다. 내가 쿼리를 실행하려고하면JPA Hibernate Nested Objects

caEntityManager.createQuery("SELECT C FROM COUNTRY C 
     JOIN fetch C.STATE S JOIN fetch S.CITY").getResultList(); 

: Country.java에서

: 같은

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
@JoinColumn(name = "COUNTRY_ID") 
private List<State> state = new Vector<State>(); 

State.java 에서이

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
@JoinColumn(name = "STATE_ID") 
private List<City> city = new Vector<City>(); 

JPA 쿼리 보인다 나는 :

org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags 

내 쿼리가 틀렸다고 확신합니다. 새 질문입니다. 올바른 방향으로 지정하십시오. I

고마워요!

+0

BTW, org.hibernate.loader.MultipleBagFetchException 점점 : 위의 코드에서 동시에 여러 봉지를 가져올 수 없습니다. – topcan5

+0

왜 컬렉션에 대한 목록을 사용합니까? –

답변

1

최대 절전 모드에서는 두 개의 봉지를 가져올 수 없습니다. EAGER ly. 빠른 해결책은 ListSet s로 변경하는 것입니다.

더 읽으려면 :

  • Article 2