Ich mache einen LEFT OUTER JOIN, aber ich kann nur Restriktionen auf die erste Tabelle anwenden. Gibt es eine Möglichkeit, auch auf der zweiten Tabelle zu gelten?
Hier ist mein Code:
%Vor%Das funktioniert (Antragsteller hat eine Eigenschaft "bewerberName"):
%Vor%Keine dieser Funktionen (Produkt hat eine productName-Eigenschaft)
%Vor%criteria.add (Einschränkungen.eq ("products.productName", "product1") // Produkte: Der Name der Eigenschaft criteria.add (Restrictions.eq ("Product.productName", "product1") // Product: Der Name der DB-Tabelle
Und das ist die Ausnahme, die ich empfange (wenn ich richtig verstehe), dass die productName-Eigenschaft in Applicant nicht existiert:
%Vor%Ich habe versucht, einen Alias zu verwenden, aber das erzeugte einen INNEREN JOIN, anstatt den LINKEN ÄUSSEREN JOIN, den ich will.
Wie kann ich Einschränkungen für beide Tabellen anwenden?
UPDATE:
Problem ist wahrscheinlich das gleiche: Ссылка
Sie können den linken äußeren Join in den createalias angeben ...
%Vor%Seien Sie sich bewusst, dass Sie eine linke äußere Verknüpfung mit einer Einschränkung für diese Spalte ausführen, was im Wesentlichen zu einer inneren Verknüpfung führt. Wenn Sie auch Bewerber ohne Produkte möchten, müssen Sie auch nach einem Nullprodukt suchen.
Ich habe das Problem gelöst, indem ich ein neues Kriterium erstellt habe und in beiden Fällen LEFT_OUTER_JOIN verwenden konnte.
Tags und Links hibernate join criteria hibernate-criteria