Hi! You mind to send a patch?
txs and LieGrue, strub > Am 21.07.2017 um 23:50 schrieb Matthew Broadhead > <matthew.broadh...@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 >>> >