Это должно быть возможно при использовании формулы в вашем множестве к одному. Из раздела 5.1.22. Элементы столбца и формулы (решение также упоминалось в этом предыдущем ответе ):
Атрибуты
column
и formula
могут
даже сочетаться в одном и том же
сопоставление собственности или ассоциации с
экспресс, например, экзотическое соединение
условия.
<many-to-one name="homeAddress" class="Address"
insert="false" update="false">
<column name="person_id" not-null="true" length="10"/>
<formula>'MAILING'</formula>
</many-to-one>
С примечаниями (если вы используете Hibernate 3.5.0-Beta-2 +, см. HHH-4382 ):
@ManyToOne
@Formula(value="( select v_pipe_offerprice.offerprice_fk from v_pipe_offerprice where v_pipe_offerprice.id = id )")
public OfferPrice getOfferPrice() { return offerPrice; }
Или, может быть, проверьте @JoinColumnsOrFormula
:
@ManyToOne
@JoinColumnsOrFormulas(
{ @JoinColumnOrFormula(formula=@JoinFormula(value="SUBSTR(product_idnf, 1, 3)", referencedColumnName="product_idnf")) })
@Fetch(FetchMode.JOIN)
private Product productFamily;