我有一个看起来像这样的 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?})"
其中 '{expanding?}' 替换为逗号分隔的问号(取决于 targetList.size())。
但我只是得到一个
引起:org.hibernate.MappingException:集合不是关联:MyEntity.scalarSet