如果某些作为参数传递的属性可以为空,那么如何在MySQL 5.1数据库的JPA命名查询的where子句中指定条件?
示例:该表包含可为空的attribute_1和不可为空的attribute_2。内容如下:
id attribute_1 attribute_2 -- ----------- ----------- 1 {null} 123 2 X 456
如果出现以下情况,查询结果应为记录1:param_1 = null AND:param_2 =“123”
如果出现以下情况,查询结果应为记录2:param_1 =“X”AND:param_2 =“456”
如果例如:param_1 =“X”AND:param_2 =“123”
,则查询应该没有结果谢谢!
答案 0 :(得分:1)
我通过使用本机查询解决了这个问题。我无法使用JP-QL查询。 我使用了条件
AND IF(?1 IS NULL, b.attribute_1 IS NULL, b.attribute_1 = ?1)
where子句中的(?1是参数的占位符)。
答案 1 :(得分:0)
对于第一行,您需要更改查询中的where子句:
where attribute_1 is null
使用=
代替不会产生任何行,因为a = null
始终是null
。