【发布时间】:2012-09-10 22:39:23
【问题描述】:
我有一个实体类 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>
...
我正在尝试制作一个搜索屏幕,允许用户搜索附加到特定Bar 的所有Foos。附加到每个Foo 的所有Bars 都应显示在搜索结果中。
所以我尝试了这段代码:
criteria.createAlias("bars", "bar", CriteriaSpecification.LEFT_JOIN);
criteria.add(Restrictions.eq("bar.id", barID));
这过滤了Foo 记录就好了。但它也会过滤 bars 属性。所以我添加了这一行:
criteria.setFetchMode("bars", FetchMode.SELECT)
但这并没有做任何事情。
我在休眠会话的 Bar 上没有任何休眠过滤器。谁能帮帮我?
【问题讨论】:
标签: hibernate many-to-many criteria