Hello OpenJpa-Users!

I am using JPA2 with it's Criteria API to select my entities from the database. The implementation is OpenJPA on WebSphere Application Server (afaik version 2.1.1). All my entities are modeled with Fetchtype=Lazy.

I select an entity with some criteria from the database and want to load all nested data from sub-tables at once. If I have a datamodel where table A is joined oneToMany to table B, I can use a Fetch-clause in my criteria query:

|CriteriaBuilder  cb=  entityManager.getCriteriaBuilder();
CriteriaQuery<A>  cq=  cb.createQuery(A.class);
Root<A>  root=  cq.from(A.class);
Fetch<A,B>  fetch=  root.fetch(A_.elementsOfB,  JoinType.LEFT);
|

This works fine. I get an element A and all of its elements of B are filled correctly. Now table B has a oneToMany-relationship to table C and I want to load them too. So I add the following statement to my query:

|Fetch<B,C>  fetch2=  fetch.fetch(B_.elementsOfC,  JoinType.LEFT);
|

But this wont do anything.

Does anybody know how to fetch multi level entities in one query?

Reply via email to