Ich versuche, eine HQL-Abfrage zu einer Liste von Benutzern, die zu einer bestimmten Organisation oder Franchisenehmer aus einer Liste von Franchisenehmern zu greifen, aber Hibernate ist nicht in der Lage zu analysieren es. Ich kann nicht herausfinden warum. Hier ist die HQL:HQL unerwarteten AST-Knoten: {Vektor}
from User u where
(u.parentOrganisation = :topLevelOrganisation or u.parentOrganisation in :franchisees)
and u.parentOrganisation.deleted = false
and u.active = true
Dies ist der Fehler, die überwintern ausspuckt:
unexpected AST node: {vector} [from com.myapp.User u where (u.parentOrganisation = :topLevelOrganisation or u.parentOrganisation in :franchisees0_, :franchisees
1_, :franchisees2_) and u.parentOrganisation.deleted = false and u.active = true]. Stacktrace follows:
Message: unexpected AST node: {vector} [from com.myapp.User u where (u.parentOrganisation = :topLevelOrganisation or u.parentOrganisation in :franchisees0_, :fr
anchisees1_, :franchisees2_) and u.parentOrganisation.deleted = false and u.active = true]
Wenn ich das or u.parentOrganisation in :franchisees
Bit herausnehmen, so dass meine Abfrage sieht wie folgt aus:
from User u where
(u.parentOrganisation = :topLevelOrganisation)
and u.parentOrganisation.deleted = false
and u.active = true
Dann funktioniert es gut. Was ist falsch an meiner Syntax? Warum beschwert sich der Winterschlaf über diese zusätzliche Klausel?