如何解决在以可为空的属性作为参数的JPA命名查询子句中的MySQL条件
|| 如果作为参数传递的某些属性为空,如何在针对MySQL 5.1的JPA命名查询的子句中指定条件? 示例:该表包含可为空的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 \”,查询将没有结果。 谢谢!解决方法
我通过使用本机查询解决了问题。我无法在JP-QL查询中使用它。
我用了条件
AND IF(?1 IS NULL,b.attribute_1 IS NULL,b.attribute_1 = ?1)
在where子句中(?1是参数的占位符)。
, 对于第一行,您需要更改查询中的where子句:
where attribute_1 is null
相反,使用=
不会产生任何行,因为a = null
始终是null
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。