У меня есть отображение спящего режима, подобное этому, в классе ProductDfn
@ManyToOne( fetch = FetchType.LAZY, optional = true )
@JoinColumn( name = "productTypeFk", nullable = true )
public ProductType getProductType()
{
return productType;
}
Обратите внимание, что отношение определяется как необязательное (и столбец может иметь значение NULL).
При выполнении HQL что-то вроде этого
select p.name as col1, p.productType.name as col2 from ProductDfn p
Внутреннее соединение используется для присоединения ProductDfn к ProductType, поскольку hibernate генерирует явное соединение SQL из неявного соединения в предложении select.
Однако при выполнении вышеизложенного, когда productType имеет значение null (в БД), строка не возвращается из-за внутреннего соединения. Для этого отношения я хотел бы использовать hibernate по умолчанию для выполнения внешнего соединения (потому что отношение является необязательным), поэтому я получил бы «null» для col2, а не строки вообще.
Кто-нибудь знает, возможно ли это?
Спасибо.