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.

questionAnswers(1)

yourAnswerToTheQuestion