I have a Hibernate mapping that looks something like this:
<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
Given this, how do I query such that a value of MyEntity.scalarSet (which is Set) is in a another collection.
Something like:
criteria.add(Restrictions.in("scalarSet", targetList));
[edit] I've also tried Restriction.sqlRestriction(..). The sql query that I used is something like this:
"1 == (select fk, scalar_value from other_table where fk = {alias}.id and scalar_value in ({expanding?})"
Wherein '{expanding?}' is replaced by comma-separated question marks (depending on targetList.size()).
But I'm just getting a
Caused by: org.hibernate.MappingException: collection was not an association: MyEntity.scalarSet