Whiteship's Note

8.2.4. HQL 공부하기 - inner join



insertDatas() 메소드에서 집어 넣는 데이타에서 Member와 Messenger의 모습을 보면 다음과 같습니다.

사용자 삽입 이미지

seal 멤버만 두개의 Messenger 정보를 가지고 있습니다. 이 때 inner join을 하면 다음과 같이 두개의 레코드가 생기게 됩니다.
사용자 삽입 이미지
inner join을 HQL로 하는 방법은 s.create("from Member m inner join m.messengers") 이렇게 콜렉션을 가리키면 됩니다.

public void testJoinHQL(){

       insertDatas();

       q = s.createQuery("from k_Member m inner join m.messengers");

       List<Object> result = q.list();

       // Member m1 | Messenger msg1("keesun", MSN)

       // Member m1 | Messenger msg2("keesun2", Skype)

       assertEquals(2, result.size());

       Object[] result1 = (Object[]) result.get(0);

       assertTrue(result1[0] instanceof KMember);

       assertTrue(result1[1] instanceof KMessenger);

       KMessenger msg1 = (KMessenger) result1[1];

       assertEquals("seal", msg1.getM_id());

       assertEquals(KMessengerType.MSN, msg1.getM_type());

}

'Hibernate > 주소록 만들기' 카테고리의 다른 글

9. Tag만들기  (0) 2007.02.12
8.4. 기능 구현  (0) 2007.01.25
8.3. Criteria 공부하기  (0) 2007.01.25
8.2. HQL 공부하기  (0) 2007.01.24
8.2.4. HQL 공부하기 - inner join  (0) 2007.01.24
8.2.3. HQL 공부하기 - order by절  (0) 2007.01.24
8.2.2. HQL 공부하기 - where절  (0) 2007.01.24
8.2.1. HQL 공부하기 - select절  (0) 2007.01.24
8.1. DbUnit 사용하기  (0) 2007.01.24
8. DAO 기능 구현하기  (4) 2007.01.23
7.3. 새로운 타입으로 맵핑하기.  (0) 2007.01.22
top




: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ··· : 29 :