Java jpa标准生成器编写简单查询

Java jpa标准生成器编写简单查询,java,jsf,jpa,Java,Jsf,Jpa,我想从具有特定价格和特定类型的数据库实体中进行选择,但使用criteria builder时结果列表为空 CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery(); Root<Advert> from = criteriaQuery.from(Advert.class); Pre

我想从具有特定价格和特定类型的数据库实体中进行选择,但使用criteria builder时结果列表为空

CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
Root<Advert> from = criteriaQuery.from(Advert.class);
Predicate predicate1 = criteriaBuilder.ge(from.get("price"), x1);
Predicate predicate2 = criteriaBuilder.le(from.get("price"), x2);
Predicate predicate4 = criteriaBuilder.like(from.get("type"), type);
criteriaQuery.where(criteriaBuilder.and(predicate1, predicate2, predicate4));
TypedQuery<Object> typedQuery = em.createQuery(criteriaQuery);
List<Object> resultList = typedQuery.getResultList();
CriteriaBuilder-CriteriaBuilder=em.getCriteriaBuilder();
CriteriaQuery CriteriaQuery=criteriaBuilder.createQuery();
Root-from=criteriaQuery.from(广告类);
谓词predicate1=criteriaBuilder.ge(from.get(“price”),x1);
谓词predicate2=criteriaBuilder.le(来自.get(“价格”),x2);
谓词谓词谓词4=criteriaBuilder.like(from.get(“type”),type);
其中(criteriaBuilder.and(predicate1、predicate2、predicate4));
TypedQuery TypedQuery=em.createQuery(criteriaQuery);
List resultList=typedQuery.getResultList();

但是它返回空列表。如何正确重写它?

启用SQL跟踪,这样您就可以看到生成的SQL查询,以便找出查询生成器的错误。尝试添加:
criteriaQuery.select(from)