Java hibernate Restriction.ne不包含空值的实体
我尝试使用Java hibernate Restriction.ne不包含空值的实体,java,hibernate,Java,Hibernate,我尝试使用Restrictions.ne(“status”,“ERROR”)按条件获取列表,但方法返回的列表中没有实体,其中状态为null public List<Match_soccer> getDayMatches(Date day){ //Match_soccer where date between start and end dates and status != null Criteria criteria = session.createCriteria
Restrictions.ne(“status”,“ERROR”)
按条件获取列表,但方法返回的列表中没有实体,其中状态为null
public List<Match_soccer> getDayMatches(Date day){
//Match_soccer where date between start and end dates and status != null
Criteria criteria = session.createCriteria(Match_soccer.class);
criteria.add(Restrictions.between("start", day, DateJobs.addnHours(DateJobs.nextDay(day), 3)));
criteria.add(Restrictions.ne("status","ERROR"));
return criteria.list();
}
公共列表getDayMatches(日期日){
//开始日期和结束日期之间的日期和状态!=空
标准=session.createCriteria(Match_soccer.class);
标准.add(限制.between(“start”、day、DateJobs.addnHours(DateJobs.nextDay(day),3));
添加(Restrictions.ne(“状态”、“错误”));
返回条件。list();
}
标准编写得很好,应该可以使用
您是否尝试删除日期筛选器以查看其是否正在筛选“status=null”?包括明确的null检查:
criteria.add(Restrictions.or(
Restrictions.ne("status","ERROR"),
Restrictions.isNull("status"))
);
关键是,大多数数据库使用
null
参数对比较运算符进行评估,使其成为false
,这意味着status=null
和status null
都被视为false我尝试删除标准。添加(Restrictions.ne(“status”,“ERROR”)代码>然后返回null