Hibernate Kriterien: Left Outer Verknüpfen Sie mit Einschränkungen für beide Tabellen

8

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: Ссылка

    
Markos Fragkakis 05.02.2010, 15:19
quelle

3 Antworten

13

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.

    
dotjoe 05.02.2010, 15:59
quelle
0

Aktualisierung:

%Vor%     
alden8 04.02.2013 18:04
quelle
0

Ich habe das Problem gelöst, indem ich ein neues Kriterium erstellt habe und in beiden Fällen LEFT_OUTER_JOIN verwenden konnte.

    
user2525481 27.06.2013 13:47
quelle