使用多对一公式可以做到这一点。从第5.1.22节开始。列和公式元素(此先前答复中也提到了解决方案):
column和formula属性可以甚至是相同的属性或关联映射中被合并来表达,例如,奇异的连接条件。<many-to-one name="homeAddress" 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;


