java - Hibernate中带有命名查询的可选参数?

标签 java hibernate orm hql named-query

在使用 Hibernate 时,有什么方法可以在命名查询中指定可选参数(例如,当搜索参数是从表单提供时,并非所有参数都是必需的) ?我正在使用 native SQL查询,但该问题可能适用于命名 HQL查询也是如此。

我很确定这个问题的答案是否定的,但我还没有在文档中找到明确的答案。

最佳答案

正如前面提到的 different answerquestion 中所提到的,以下 HQL 构造适用于我:

select o from Product o WHERE :value is null or o.category = :value

如果 :value 作为 null 传入,则返回所有产品。

另见 Optional or Null Parameters

请注意,由于 this bug,这在 Sybase 的某些版本中不起作用,因此以下是替代方法:

select o from Product o WHERE isnull(:value, 1) = 1 or o.category = :value

关于java - Hibernate中带有命名查询的可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444603/

相关文章:

java - 全屏帧图像加载

JavaScript 无法找到该元素

java - Hibernate 查询/条件返回重复数据

.net - ORM 映射器 .NET linux 服务器

php - Doctrine 一对多自引用不起作用

java - 字节数组到字符串并反转 : recoverded byte array is NOT match to original byte array in Java

java - OpenSAML 如何检查 SAML 响应(签名/证书)是否确实来 self 的 IDP?

hibernate - 使用Hibernate进行复杂查询的问题

spring-boot - hibernate : How to change the auto generated foreign key column name from lowercase to uppercase

java - 桌面应用程序中的数据一致