CriteriaBulder [message #553703] |
Wed, 18 August 2010 14:14 |
Tom Eugelink Messages: 817 Registered: July 2009 |
Senior Member |
|
|
I'm getting my feet wet with the new JPA 2.0 query builder. So far I'm able to run a simple condition (string is value), but when I want to use GregorianCalendar I get troubles with generics.
In the query below the two conditions on BUYDATE do not compile:
CriteriaBuilder lCriteriaBuilder = lEntityManager.getCriteriaBuilder();
CriteriaQuery<Buyorder> lCriteriaQuery = lCriteriaBuilder.createQuery(Buyorder.class);
Root<Buyorder> lBuyorderRoot = lCriteriaQuery.from(Buyorder.class);
lCriteriaQuery = lCriteriaQuery.select(lBuyorderRoot).where(
lCriteriaBuilder.and(
lCriteriaBuilder.equal(lBuyorderRoot.get(Buyorder.RELATION_F IELD_ID), relation),
lCriteriaBuilder.greaterThanOrEqualTo(lBuyorderRoot.get(Buyo rder.BUYDATE_FIELD_ID), from),
lCriteriaBuilder.lessThanOrEqualTo(lBuyorderRoot.get(Buyorde r.BUYDATE_FIELD_ID), upToAndIncluding)
)
);
Eclipse says:
Bound mismatch: The generic method greaterThanOrEqualTo(Expression<? extends Y>, Expression<? extends Y>) of type CriteriaBuilder is not applicable for the arguments (Path<Object>, GregorianCalendar).
The inferred type Object is not a valid substitute for the bounded parameter <Y extends Comparable<? super Y>>
Tom
PS: I have not gotten to the point where I have Maven generate the meta classes, one step at a time, but because I have ID's constants in my classes (Buyorder.BUYDATE_FIELD_ID) I'm compiler checkable already.
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02158 seconds