Standardbeitritt im Ruhezustand für nullbare Viele-zu-Eins-Verbindungen

Ich habe eine Abbildung des Ruhezustands wie diese in einer ProductDfn-Klasse

@ManyToOne( fetch = FetchType.LAZY, optional = true )
@JoinColumn( name = "productTypeFk", nullable = true )
public ProductType getProductType()
{
    return productType;
}

Beachten Sie, dass die Beziehung als optional definiert ist (und die Spalte nullwertfähig ist).

Wenn man so etwas wie HQL macht

select p.name as col1, p.productType.name as col2 from ProductDfn p

Ein innerer Join wird verwendet, um ProductDfn mit ProductType zu verbinden, während der Ruhezustand den expliziten SQL-Join aus dem impliziten Join in der select-Klausel generiert.

Wenn Sie jedoch wie oben beschrieben vorgehen und productType den Wert null (in der Datenbank) hat, wird aufgrund des inneren Joins keine Zeile zurückgegeben. Für diese Beziehung möchte ich standardmäßig einen Ruhezustand haben, um einen Outer Join auszuführen (da die Beziehung optional ist), damit ich für col2 eine "Null" zurückerhalte, anstatt überhaupt keine Zeile.

Weiß jemand, ob das möglich ist?

Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage