2014-09-01 82 views
0

之间,我试图用CriteriaBuilder.between的方法,但我有一个错误,代码是这样的:CriteriaBuilder在JPA与

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(一)。凡(的CBuilder。之间(a.get( “fechaFin”),fechaInicio,fechaFin));是错的,但我怎么能做到这一点呢?

非常感谢

回答

0

这样我可以回答自己:

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