我有一個Hibernate映射,看起來是這樣的:休眠條件包含式上的關聯表
<class name="MyEntity">
<set name="scalarSet" table="(select fk, scalar_value from other_table)">
<key column="fk"/>
<property column="scalar_value" type="long"/>
</set>
</class
鑑於此,我該如何查詢MyEntity.scalarSet這樣一個值(這是Set)在另一個集合中。
喜歡的東西:
criteria.add(Restrictions.in("scalarSet", targetList));
[編輯] 我也試過Restriction.sqlRestriction(..)。我使用的SQL查詢是這樣的:
"1 == (select fk, scalar_value from other_table where fk = {alias}.id and scalar_value in ({expanding?})"
其中,「{?擴大}」是由逗號分隔的問號代替(取決於targetList.size())。
但我剛開
產生的原因:org.hibernate.MappingException:採集是不是關聯:MyEntity.scalarSet
感謝,後入侵hibernate的來源,這是我最終做的:-) – 2009-09-04 10:36:57