문제

SELECT *
FROM [Group] g
INNER JOIN User2Group ug
    **on g.Id != ug.GroupId**
INNER JOIN [Activity] a
    on a.Id = g.ActivityId
WHERE g.UserId != 2
AND a.Lineage like '0,1,%'

Group> 1-n> user2group <n-1 <사용자 Mn 관계

활동> 1-n> 그룹 1-n

사용자가 아직 계정에 추가하지 않은 모든 그룹을 얻으려고합니다.

내가 지금까지 가지고있는 것 :

var groups = repository.SimpleQuery<Group>("from Group as g join fetch g.Users as u join fetch g.Activity as a where g.Type != ? and a.Lineage like ? and g.CreatedBy.Id != ?", Group.GroupType.Deleted, string.Format("{0}%", lineage), currentUser.Id);

내가 넘어간 것은 "on g.id != ug.groupid "

도움이 되었습니까?

해결책

엔티티와 매핑을 보지 못하면 조금 어렵지만

on g.Id != ug.GroupId

부분은 아마도 HQL로 표현 될 수 있습니다

from Group as g where g.id not in (select u.group.id from User u where u.id = ?)

나머지 where 절은 추가하기 쉽습니다.

내가 HQL과 함께 일한 지 오래되었습니다 :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top