2016-03-29 62 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)中請求了兩件事。 我已經搜索周圍,找不到答案,但我如何檢索兩個選定的對象?

回答

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 
}