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());

}