내 응용 프로그램에는 두 개의 엔티티 클래스 User
, Activity
이 있습니다.AND, OR 연산자를 사용하는 Hibernate Criteria 질의
활동 클래스는 다음과 같습니다
public class Activity{
private Set<User> users;
private Set<User> activityManagers;
}
및 클래스 사용자는 다음과 같습니다
public class User{
private String userName;
}
가 지금은 최대 절전 모드 기준을 사용하여 검색 할 모든 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].
결과가 두 번째해야합니다 가지고, 세 번째, 네 번째 활동. 그러나 나는 단지 활동을 고갈시키고 있습니다.
어떻게 작동하지 않습니까? – Thihara
@Thihara는 예상 답변을 제공하지 않습니다. – Diganta
@Diganta 무엇이 입력이고, 예상되는 출력은 무엇이며, 실제 출력은 무엇입니까? 우리가 당신을 도울 수 있도록 도와주세요. –