Hibernate Criteria多对多条件

时间:2014-08-27 13:27:37

标签: hibernate jpa

关于多对多标准的问题是关于stackoverflow现有问题的后续问题。Criteria for many- to-many

在引用的问题中,检索FOO实体的标签名称,但我有一种情况,我需要一个FOO对象,它有两个与之关联的标签。 例如,我需要获得具有两者的FOO对象 Tag1 =休眠 Tag2 =春天。 有关如何做到这一点的任何建议? 感谢

1 个答案:

答案 0 :(得分:0)

一系列限制linked with or is called a disjunction。一系列限制linked with and is called a conjunction

在Hibernate中,Criteria Conjunction作为逻辑AND运算符。 conj()将表达式分组为单个表达式。如果满足所有条件,则返回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();
相关问题