我正在使用Hibernate / JPA运行下面的查询,当我向查询中传递空值时,我期望下表中的第3行能够返回。 EXPOSURE_TYPE和MESSAGE_FORMAT都定义为字符串:
MESSAGE_FORMAT EXPOSURE_TYPE
XSD.001.001.01 1
XSD.001.001.01 2
XSD.001.001.01 null <====expecting this to get returned when i set the value to null
我的查询
Query q = em.createQuery("SELECT m FROM Message m WHERE m.messageFormat = :messageFormat AND m.exposureType = :exposureType");
q.setParameter("messageFormat", messageFormat);
q.setParameter("exposureType", exposureType);
try
{
message = (Message) q.getSingleResult();
}
catch(NoResultException nre){
//some logging
}
catch(Exception ex){
//some logging
}
return message;
答案 0 :(得分:1)
不可能查询= null,而必须使用null。
因此,如果要查找为null的EXPOSURE_TYPE,则查询必须类似于:
EXPOSURE_TYPE is null
-
在此处阅读有关该主题的更多信息。 what is "=null" and " IS NULL"