2016-03-29 4 views
2

に参加するクエリを作成する私は現在、次のことをやっている:は、複数のオブジェクトを返す休止

Query q = session.createQuery("select x,s.id from com.package.IdLookupHDO x JOIN com.package.SourceDataHDO s ON x.identifier = s.sourcePrimaryIdentifier"); 
     for (Object obj : q.list()){ 

     } 

私はこの参加クエリは問題なく動作しますだと思います。しかし、私はselect(IdLookupHDOとid)で2つのものを要求したので、クエリはリストメソッドでオブジェクト配列を返すことを期待していました。 私は検索して答えを見つけることができませんが、どのように選択したオブジェクトを取り出すことができますか?

答えて

3

永続クラスに対応する関連付けがある場合は、onは必要ありません。

Query q = session.createQuery("select x,s.id from IdLookupHDO x join x.sourceAssociation s"); 

このクエリは、List<Object[]>

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

for (Object[] obj : result){ 
    // obj[0] is x 
    // obj[1] is s.id 
} 
を返します。