HQL“为空”并且“!= null”在 Oracle 列上

发布于 2024-10-18 04:25:38 字数 119 浏览 2 评论 0原文

hibernate是否将HQL中的column != null转换为SQL中的column is null >?

Does hibernate convert column != null in HQL to a column is null in SQL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

栖迟 2024-10-25 04:25:38

这是休眠中的二元运算符,您应该使用

is not null

看看 14.10。表达式

That is a binary operator in hibernate you should use

is not null

Have a look at 14.10. Expressions

转瞬即逝 2024-10-25 04:25:38

不可以。您必须在 HQL 中使用 is nullis not null

No. You have to use is null and is not null in HQL.

扭转时空 2024-10-25 04:25:38

如果您确实想将 null 值与 '=''<>' 运算符一起使用,您可能会发现

@egallardo hier 的回答

非常有用。

表达式

WHERE t.field = :param

'=' 的简短示例:您像这样重构的

WHERE ((:param is null and t.field is null) or t.field = :param)

现在您可以将参数 param 设置为某个非空值或 null

query.setParameter("param", "Hello World"); // Works
query.setParameter("param", null);          // Works also

If you do want to use null values with '=' or '<>' operators you may find the

answer from @egallardo hier

very useful.

Short example for '=': The expression

WHERE t.field = :param

you refactor like this

WHERE ((:param is null and t.field is null) or t.field = :param)

Now you can set the parameter param either to some non-null value or to null:

query.setParameter("param", "Hello World"); // Works
query.setParameter("param", null);          // Works also
小霸王臭丫头 2024-10-25 04:25:38

否。另请参阅此链接在 HQL 中处理条件 null,了解如何处理与 null 和 non- 的比较的提示和技巧空值。

No. See also this link Handle conditional null in HQL for tips and tricks on how to handle comparisons with both null and non-null values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文