Frage

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,%'

Gruppe> 1-n> User2Group

Aktivität> 1-n> Gruppen 1-n

Der Versuch, alle Gruppen zu erhalten, die ein Benutzer auf ihr Konto nicht bereits hinzugefügt.

Was ich habe, so weit:

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);

Was hat mich gestolpert ist die "auf g.Id ! = ug.GroupID"

War es hilfreich?

Lösung

Es ist ein bisschen schwer, wenn ich sehe nicht die Entitäten und die Zuordnungen, aber die

on g.Id != ug.GroupId

Teil wahrscheinlich in HQL ausgedrückt durch

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

Der Rest der where-Klausel sollte einfach hinzuzufügen.

Geist, dass es eine Weile her, seit ich mit HQL gearbeitet: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top