【问题标题】:how to use Or criteria with list of Restrictions如何将 Or 标准与限制列表一起使用
【发布时间】:2019-04-13 08:42:10
【问题描述】:

所以我有一个 Restrictions.eq 列表,我想将它添加到 Restrictions.or 标准中。有可能吗?如何 ? 下面是我脑海中的例子:

List<Integer> stars=Arrays.asList(1,2,3);

这些是我在 postgresql 数据库中的酒店行:

  1. id : 1 , name : Hilton Dubai , 星级 : 1
  2. id : 2 , name : Hilton Istanbul , star : 2
  3. id : 3 , name : Hilton Paris , star : 3
  4. id : 4 , name : Hilton London , star : 4
  5. id:5,名称:Hilton Rome,星级:5

    Criteria criteria = createCriteria();
    
    List<SimpleExpression> expressions=new ArrayList();
    for(Integer star:stars){
        expressions.add(Restrictions.eq("star",star));
    }
    
    criteria.add(Restrictions.or(expressions));
    
    List<Hotel> hotels=criteria.list(); // returns id 1 and 2 and 3
    

【问题讨论】:

标签: java hibernate criteria


【解决方案1】:

你的表达不正确。你是说接受所有表达式,否则当我用“或”检查将它们连接起来时,我会给你另一个表达式。 您需要将表达式创建为一个表达式,并将所有 simpleExpression 添加到具有Restrictions.or 的其他表达式。 删除List&lt;SimpleExpression&gt; expressions=new ArrayList(); 创建一个Criterion。 在 for 循环中连接所有 CriterionRestrictions.or..

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多