criteria api where 1<>1 子句
我希望查询不返回任何值。我不能只是不查询数据库,所以我想在谓词中添加一些无法到达的条件,例如“where 1 <>” 1'.但 CriteriaBuilder.equal() 不允许这样做。有什么办法可以达到目标吗?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
怎么样
虽然,如果您知道这不应该执行,那么如果数据库无法查看绑定值,那么在某些 RDBMS 上使用表达式可能不是最佳选择。我不知道如何使用内联
1 <> 创建 JPA 谓词1
SQL 表达式,不过...How about
Although, if you know that this shouldn't execute, then using expressions might not be optimal on some RDBMS, if the database can't peek at bind values. I don't know how to do create a JPA Predicate with an inlined
1 <> 1
SQL expression, though...CriteriaBuilder 中的 Javadoc:“创建一个析取(具有零个析取)。具有零个析取的析取是错误的。”
然后生成的SQL取决于执行情况,Hibernate生成0=1。为什么我更喜欢这种方法而不是其他替代方法,是:
额外的参数,你可以从名字猜出它的作用。
Javadoc from CriteriaBuilder: "Create a disjunction (with zero disjuncts). A disjunction with zero disjuncts is false."
And then generated SQL depends about implementation, Hibernate produces 0=1. Why I prefer this method over other alternatives, is:
additional arguments and you kind of guess what it does from name.
这个怎么样:
How about this:
或者
or