如果作为参数传递的某些属性可为空,如何在 MySQL 5.1 数据库的 JPA 命名查询的 where 子句中指定条件?
示例:表包含可为空的 attribute_1 和不可为空的 attribute_2。内容为:
id attribute_1 attribute_2 -- ----------- ----------- 1 {null} 123 2 X 456
如果 :param_1 = null AND :param_2 = "123",则查询结果应为记录 1
如果 :param_1 = "X"AND :param_2 = "456"则查询结果应为记录 2
查询应该没有结果,例如:param_1 = "X"AND :param_2 = "123"
谢谢!
最佳答案
我通过使用 native 查询解决了该问题。我无法让它与 JP-QL 查询一起使用。 我使用了条件
AND IF(?1 IS NULL, b.attribute_1 IS NULL, b.attribute_1 = ?1)
在 where 子句中(?1 是参数的占位符)。
关于以可为空属性作为参数的 JPA 命名查询的 where 子句中的 MySQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396279/