openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de.INVALID>
Subject Re: JPA criteria
Date Mon, 24 Jul 2017 05:01:32 GMT
Hi!

You mind to send a patch?

txs and LieGrue,
strub


> Am 21.07.2017 um 23:50 schrieb Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk>:
> 
> Hi Rob,
> 
> yes thanks in the end i did this
> Join<EntityZ, Detail> detail = entity.join(EntityZ_.details);
> 
> the documentation page linked in my first email (https://openjpa.apache.org/builds/2.4.2/apache-openjpa/docs/jpa_overview_criteria.html)
is for 2.4.2 which is what i am using bundled in TomEE 7.0.3.   the examples on the page should
be updated to reflect what we are saying here?
> 
> Matt
> 
> On 21/07/2017 19:32, Rob Scala wrote:
>> Matthew,
>> 
>> I haven't done this yet, but the documentation states that join returns a Join<X,Y>
object, not a Root<X>.  I think in your case, it returns a Join<EntityZ,Detail>.
>> 
>> Where does the documentation need to be updated?
>> 
>> Rob
>> 
>> 
>> On 07/21/2017 12:50 PM, Matthew Broadhead wrote:
>>> Thanks Rob, this works:
>>> criteriaQuery.where(criteriaBuilder.equal(entity.get(EntityZ_.id), entityId));
>>>  maybe the documentation needs updating?
>>> 
>>> 
>>> 
>>> On 21/07/2017 12:49, Rob Scala wrote:
>>>> 
>>>> Matthew,
>>>> 
>>>> On your second point, expression methods (equal, gt, etc) belong to the CriteriaBuilder,
not to the expressions.
>>>> 
>>>> cb.equal(exp1, exp2)
>>>> 
>>>> http://docs.oracle.com/javaee/7/api/javax/persistence/criteria/CriteriaBuilder.html

>>>> 
>>>> Rob
>>>> 
>>>> 
>>>> On 07/21/2017 05:03 AM, Matthew Broadhead wrote:
>>>>> Following the example on page https://openjpa.apache.org/builds/2.4.2/apache-openjpa/docs/jpa_overview_criteria.html
>>>>> 
>>>>> CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
>>>>> CriteriaQuery<EntityZ> criteriaQuery = criteriaBuilder.createQuery(EntityZ.class);
>>>>> Root<EntityZ> entity = criteriaQuery.from(EntityZ.class);
>>>>> Root<Detail> detail = entity.join(entity.get(EntityZ_.details));
>>>>> 
>>>>> results in
>>>>> 
>>>>> Type mismatch: cannot convert from Expression<List<Detail>>
to SingularAttribute<? super EntityZ,Y>
>>>>> 
>>>>> also is there a typo?
>>>>> 
>>>>> qdef.where(customer.get(Customer_.name).equal("John Doe").and(order.get(Order_.status).equal(OrderStatus.DELIVERED).not()));

>>>>> 
>>>>> there is no such function as equal?  should it be equals? also in my
case:
>>>>> 
>>>>> criteriaQuery.where(entity.get(EntityZ_.id).equals(entityId));
>>>>> 
>>>>> results in:
>>>>> 
>>>>> The method where(Expression<Boolean>) in the type CriteriaQuery<EntityZ>
is not applicable for the arguments (boolean)
>>>> 
>>>> -- 
>>>> *Rob Scala*
>>>> Director of Information Technology
>>>> Buyers Edge, Inc
>>>> 351 N. Frontage Road, Suite A210
>>>> New London, CT 06320
>>>> Phone - 860-865-2127
>>>> Fax - 860-701-0576
>>> 
> 


Mime
View raw message