【问题标题】:Hibernate Criteria Many to Many multiple conditionsHibernate Criteria 多对多多个条件
【发布时间】:2014-08-27 13:27:36
【问题描述】:

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

在引用的问题中,检索 FOO 实体以获取标签名称,但我有一种情况,我需要一个 FOO 对象,该对象具有与之关联的两个标签。 例如,我需要一个 FOO 对象,它同时具有 Tag1=休眠 标签 2 = 弹簧。 关于如何做到这一点的任何建议? 谢谢

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    一系列限制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();
    

    【讨论】:

    • @user68883 这就是你想要的吗??
    • 会试一试,但不使用 Restrictions.in() 将所有带有标签 tag1 或 tag2 的 Foo 对象返回给我?我只想要同时具有 tag1 和 tag2 的 Foo 对象。
    • @user68883 我已经编辑了答案尝试两种方法
    • 第一种方法产生所有带有 tag1 或 tag2 的 Foo 对象,第二种方法产生零个对象。我说的是多对多,以防万一你错过了。
    • @user68883 回答已编辑、替换或使用,对于第一种情况,现在可以使用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2010-09-20
    • 2014-05-15
    相关资源
    最近更新 更多