3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
方法1,hql: select * from Email e where e.id in (id1,id2,id3)
這樣得到email對(duì)象的集合List<Email> listE;
然后 Set<Person> set=new HashSet();
for(Email e:listE){
set.add(e.getPerson);
}
set是可以去除重復(fù)的。
方法2,用hql,先用這些email的id得到所有personid,然后用這些personid,查詢(xún)person對(duì)象集合。

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
假如person對(duì)應(yīng)的email是有條件的,那么此時(shí)有兩種辦法。
1,程序循環(huán)email,手動(dòng)過(guò)濾。
2,還是用hql或sql手動(dòng)查 不用自動(dòng)關(guān)聯(lián)。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
你hibernate肯定有關(guān)聯(lián)吧。
通過(guò)id得到email對(duì)象,這個(gè)對(duì)象關(guān)聯(lián)person對(duì)象,而person會(huì)關(guān)聯(lián)它下面的所有email對(duì)象,這樣就行了。也就是說(shuō)在hibernate里面,你只需要得到person就行了。至于它下面的email被延遲加載出來(lái)就行了。
添加回答
舉報(bào)