JPA中的CriteriaBuilder与之间的方法

时间:2014-09-01 21:08:23

标签: java jpa

我试图使用CriteriaBuilder.between但是我有一个错误,代码是这样的:

public List<Oferta> findByFechaFinOferta(Date fechaInicio,Date fechaFin){

    CriteriaBuilder cBuilder = em.getCriteriaBuilder();
    CriteriaQuery<Oferta> cQuery =cBuilder.createQuery(Oferta.class);
    Root<Oferta> a = cQuery.from(Oferta.class);

    ParameterExpression <String> param = cBuilder.parameter(String.class);
    cQuery.select(a).where(cBuilder.between(a.get("fechaFin"),fechaInicio,fechaFin));        

    TypedQuery<Oferta> tQuery = em.createQuery(cQuery);
    List<Oferta> oferta = tQuery.getResultList();
    return oferta;
 }

cQuery.select(a).where(cBuilder.between(a.get(&#34; fechaFin&#34;),fechaInicio,fechaFin));是错的,但我怎么做才能使它成功?

非常感谢

1 个答案:

答案 0 :(得分:0)

通过这种方式,我可以自己回答:

 Predicate predicate = cBuilder.between(a.get(Oferta_.fechaFin),fechaInicio,fechaFin);    
    cQuery.select(a).where(predicate);