当前位置: 首页 > 面试题库 >

Hibernate Criteria Query-嵌套条件

司健柏
2023-03-14
问题内容

我不知道如何使用Hibernate Criteria synthax创建这样的查询

select * from x where x.a = 'abc'  and (x.b = 'def' or x.b = 'ghi')

您是否知道该怎么做?
我正在使用Hibernate Restriction静态方法,但不了解如何指定嵌套的“或”条件


问题答案:

您的特定查询可能是:

crit.add(Restrictions.eq("a", "abc"));
crit.add(Restrictions.in("b", new String[] { "def", "ghi" });

如果您想了解一般的AND和OR,请执行以下操作:

// Use disjunction() or conjunction() if you need more than 2 expressions
Disjunction aOrBOrC = Restrictions.disjunction(); // A or B or C
aOrBOrC.add(Restrictions.eq("b", "a"));
aOrBOrC.add(Restrictions.eq("b", "b"));
aOrBOrC.add(Restrictions.eq("b", "c"));

// Use Restrictions.and() / or() if you only have 2 expressions
crit.add(Restrictions.and(Restrictions.eq("a", "abc"), aOrBOrC));

这等效于:

where x.a = 'abc' and (x.b = 'a' or x.b = 'b' or x.b = 'c')


 类似资料:
  • 除了链接外,你还可以把一个条件嵌套到另一个条件中。之前那个例子我们可以写成这样: if (x == 0 ) { cout << "x is zero" << endl; } else { if (x > 0){ cout << "x is positive" << endl; } else { cout << "x is negative" << endl;

  • 问题内容: 是否可以在有条件的ui路由器中创建嵌套视图?条件已分配给用户角色。 例如,我有两种类型的用户: admin 和 user 。如果用户正在打开设置页面,则ui路由器仅添加分配给他的角色的该视图。 这是我的配置代码的示例 问题答案: 该视图将为每个用户(管理员或匿名)注入。但是我们可以管理哪个视图。最好的办法是使用 。 根据此问答: $ locationChangeSuccess和$sta

  • 使用if/then结构的测试可以嵌套。最终的结果和使用上一节的&&混合比较操作符一样。 1 if [ condition1 ] 2 then 3 if [ condition2 ] 4 then 5 do-something # But only if both "condition1" and "condition2" valid. 6

  • 可以嵌套 if/then 条件测试结构。嵌套的结果等价于使用 && 复合比较操作符。 a=3 if [ "$a" -gt 0 ] then if [ "$a" -lt 5 ] then echo "The value of "a" lies somewhere between 0 and 5." fi fi # 和下面的结果相同 if [ "$a" -gt 0 ] && [ "

  • 我对elasticsearch和spring数据elasticsearch非常陌生,在查询嵌套对象时遇到了一些问题。 我使用ElasticSearch存储库在ElasticSearch中保存一个嵌套模型实例。因此,elasticsearch中只有一个条目包含所有数据,据我所知,这意味着我有一个嵌套文档。 我需要使用Criteria实现一个相对复杂的查询来迭代构建查询。当我尝试使用点表示法访问嵌套属

  • 问题内容: 是否可以在spring嵌套@Transactional带注释的方法?考虑这样的事情: 如果我在b()中回滚并在a()中回滚,在这种情况下会发生什么? 问题答案: 不需要 对方法的第二个注释,因为默认情况下 ,其传播为,因此由method调用的方法将是事务性的。如果要在通过method调用的方法中启动新事务,则需要修改传播规则。阅读有关交易传播的信息。