Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring数据JPA CriteriaBuilder.isNull返回语法错误_Java_Spring_Hibernate - Fatal编程技术网

Java spring数据JPA CriteriaBuilder.isNull返回语法错误

Java spring数据JPA CriteriaBuilder.isNull返回语法错误,java,spring,hibernate,Java,Spring,Hibernate,规格: public Predicate toPredicate(Root<Hotel> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Predicate predicate = root.get("starRating").in(s); if (unrated) { predicate = cb.or(predicate, cb.isNull(roo

规格:

public Predicate toPredicate(Root<Hotel> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
    Predicate predicate = root.get("starRating").in(s);
            if (unrated) {
                predicate = cb.or(predicate, cb.isNull(root.get("starRating")));
            }
     return predicate;
}
公共谓词toPredicate(根根、CriteriaQuery查询、CriteriaBuilder cb){
谓词谓词=根.get(“starRating”).in(s);
如果(未分级){
谓词=cb.or(谓词,cb.isNull(root.get(“starRating”));
}
返回谓词;
}
其中
s
是一个
集合

SQL日志:
Hibernate:选择hotel0.hotel\u id作为hotel\u id 1\u 16,hotel0.star\u评级为star\u ra13\u 16,其中hotel0.active=?和(酒店0.star_评级为()或酒店0.star_评级为空)按较低(酒店0.hotel_名称)asc排序

错误:
ERROR 6828---[nio-8080-exec-1]o.h.engine.jdbc.spi.SqlExceptionHelper:ERROR:syntax ERROR at or near”)“

例外情况:
org.springframework.dao.InvalidDataAccessResourceUsageException:无法提取结果集;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammareexception:无法提取结果集


我在这里遗漏了什么?

您查询的问题在这里:
hotel0.star\u评级在()
。 在此点之前对集合s进行空检查:

if(s != null && !s.isEmpty()){
  predicate = root.get("starRating").in(s);
}