在我的應用程序中,我有兩個實體類User
,Activity
。使用AND或OR運算符進行休眠標準查詢
活動類:
public class Activity{
private Set<User> users;
private Set<User> activityManagers;
}
和類用戶是:
public class User{
private String userName;
}
現在我想要檢索,使用Hibernate標準的所有Activities
有User
與username
集到一定值時,在財產users
或managers
或兩者。 我已經試過這樣:
Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(Activity.class, "act");
criteria.createAlias("act.activityManagers", "manager");
criteria.createAlias("act.users", "user");
criteria.add(Restrictions.disjunction().add(Restrictions.eq("manager.username", userName)).add(Restrictions.eq("user.username", userName)));
criteria.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);
它不能正常工作。凡我做錯了,我不知道。誰能幫我?由於
UPDATE-1 假設我有5 Activity
小號
First Activity:users[aaa,bbb,cccc],managers[ddddd].
Second Activity:users[userName,dddd],managers[userName,xxx,gggg].
Third Activity:users[userName,vvvvv,bbbb],managers[sss,cccc,tttt].
Fourth Activity:users[aaa,ffff,jjjj],managers[userName,uuuu,iiiii].
Fifth Activity:users[dddd,ffff],managers[jjjjj,iiii].
結果必然是第二,第三,第四活動。但我只獲得Thired活動。
它不起作用? – Thihara 2013-05-07 09:28:47
這不是給予預期的答案@Thihara。 – Diganta 2013-05-07 09:29:41
@Diganta什麼是輸入,什麼是預期輸出,什麼是實際輸出?幫助我們幫助你。 – 2013-05-07 09:30:18