我正在使用 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;
无法查询 = null 您必须使用是 null。
因此,如果要查找 null EXPOSURE_TYPE,查询必须如下所示:
EXPOSURE_TYPE is null
-
在此处阅读有关该主题的更多信息。 什么是"=空"和"为空">