Hibernate do domyślnego łączenia dla wartości nullable many-to-one
Mam takie odwzorowanie hibernacji w klasie ProductDfn
@ManyToOne( fetch = FetchType.LAZY, optional = true )
@JoinColumn( name = "productTypeFk", nullable = true )
public ProductType getProductType()
{
return productType;
}
Zauważ, że relacja jest zdefiniowana jako opcjonalna (a kolumna jest pusta).
Podczas wykonywania HQL coś takiego
select p.name as col1, p.productType.name as col2 from ProductDfn p
Złączenie wewnętrzne jest używane do łączenia ProductDfn z ProductType, ponieważ hibernacja generuje jawne połączenie SQL z niejawnego połączenia w klauzuli select.
Jednak podczas wykonywania powyższego, gdy typ produktu ma wartość NULL (w DB), żaden wiersz nie jest zwracany z powodu połączenia wewnętrznego. W przypadku tej relacji chciałbym, aby hibernacja była domyślnie wykonywana przez sprzężenie zewnętrzne (ponieważ relacja jest opcjonalna), więc otrzymam „null” z powrotem dla col2 zamiast żadnego wiersza.
Czy ktoś wie, czy to możliwe?
Dzięki.