我需要通过这个查询从我的数据库中获取用户:
SELECT * FROM users
WHERE first_name = 'Aragorn'
AND last_name = 'SonOfAratorn'
AND city = 'Osgiliot'
AND country = 'Gondor'
问题是在我的应用程序中,我经常会缺少城市或国家/地区,或者两者都缺少。
我可以为此进行 3 或 4 个 HQL 查询,但这似乎不是一个非常有效的解决方案。
有没有一种方法只有一个查询来适应这些属性(城市和国家/地区)中的一个或两个为空的情况,我如何将该查询转换为 HQL?
我的数据库在 MySql Server 上。
附言:
我试过类似的方法,但没有成功:
SELECT * FROM users
WHERE first_name = 'Aragorn'
AND last_name = 'SonOfAratorn'
AND city like IFNULL('%', <my-city-param>)
AND country like IFNULL('%', <my-country-param>);
我正在寻找 HQL 格式的类似内容。
提前致谢。 :)
最佳答案
勾选coalesce函数;
coalesce(:valueifnotnull,'valueifnull')
应该可以解决问题
关于mysql - Hibernate HQL - 如果一个属性可能为空怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852811/