我该如何将 Hibernate 参数设置为“null”?例如:
Query query = getSession().createQuery("from CountryDTO c where c.status = :status and c.type =:type")
.setParameter("status", status, Hibernate.STRING)
.setParameter("type", type, Hibernate.STRING);
在我的情况下,状态字符串可能为null。我已经调试了它,然后Hibernate生成一个这样的SQL字符串/查询...status = null
... 但是,在MYSQL中不起作用,因为正确的SQL语句必须是"status is null
"(根据我阅读的mysql文档,Mysql不理解status=null,并将其计算为false,因此查询将永远不会返回任何记录...)
我的问题:
为什么
Hibernate
无法将空字符串正确转换为"is null"(而是错误地创建"= null")?重写此查询的最佳方法是什么,使其具有空值安全性?具有空值安全性意味着在"status"字符串为空的情况下,它应该创建一个"is null"?