我有一个Foo
与多对多关系的实体类Bar
...
<class name="Foo">
...
<set name="bars" table="FooBar" lazy="true" batch-size="100" fetch="select">
<key column="FooID" />
<many-to-many column="BarID" class="Bar" />
</set>
...
</class>
...
我正在尝试制作一个搜索屏幕,允许用户搜索Foo
附加到特定Bar
. Bar
每个附加的所有sFoo
都应显示在搜索结果中。
所以我尝试了这段代码:
criteria.createAlias("bars", "bar", CriteriaSpecification.LEFT_JOIN);
criteria.add(Restrictions.eq("bar.id", barID));
Foo
这可以很好地过滤记录。但它也会过滤bars
属性。所以我添加了这一行:
criteria.setFetchMode("bars", FetchMode.SELECT)
但这并没有做任何事情。
我在休眠会话的 Bar 上没有任何休眠过滤器。谁能帮我?