【发布时间】:2014-08-27 13:27:36
【问题描述】:
我关于多对多标准的问题是stackoverflow 上现有问题的后续问题。Criteria for many- to-many
在引用的问题中,检索 FOO 实体以获取标签名称,但我有一种情况,我需要一个 FOO 对象,该对象具有与之关联的两个标签。 例如,我需要一个 FOO 对象,它同时具有 Tag1=休眠 标签 2 = 弹簧。 关于如何做到这一点的任何建议? 谢谢
【问题讨论】:
我关于多对多标准的问题是stackoverflow 上现有问题的后续问题。Criteria for many- to-many
在引用的问题中,检索 FOO 实体以获取标签名称,但我有一种情况,我需要一个 FOO 对象,该对象具有与之关联的两个标签。 例如,我需要一个 FOO 对象,它同时具有 Tag1=休眠 标签 2 = 弹簧。 关于如何做到这一点的任何建议? 谢谢
【问题讨论】:
一系列限制linked with or is called a disjunction。一系列限制linked with and is called a conjunction。
在 Hibernate 中,Criteria Conjunction 用作逻辑 AND 运算符。 combine() 将表达式组合成一个表达式。如果所有条件都满足,则返回true,否则返回false。
就这样吧:
Criteria criteria = session.createCriteria(Foo.class);
criteria.createAlias("tags", "tagsAlias");
Conjunction conjunction = Restrictions.conjunction();
conjunction.add(Restrictions.like("tagsAlias.name", "str1"));
conjunction.add(Restrictions.like("tagsAlias.name", "str2"));
criteria.add(conjunction);
List<Foo> companies = criteria.list();
【讨论】: