Sirisha (and OpenJPA committers please read!),
After some searching I found that I had already reported this problem 18 months
ago
http://openjpa.208410.n2.nabble.com/N-1-select-problem-with-related-entities-inside-a-OneToOne-or-ManyToOne-field-td6073663.html
I didn't create a Jira issue back then because I could work around my problem.
In this example I took an example of the OpenJPA documentation where they have
a structure like:
Company (OneToMany) Employee (OneToMany) Project
When querying for Company, OpenJPA uses 3 queries to fetch all reachable
Employees and Projects, regardless of how many Employees and Projects there are.
However when I change the relation from Company to OneToOne (I think ManyToOne
has the same effect), OpenJPA starts loading individual Employees with
individual queries:
....
2905 testPU TRACE [main] openjpa.jdbc.SQLDiag - load field: 'projects' for
oid=467 class entities.Employee
2905 testPU TRACE [main] openjpa.jdbc.SQL - <t 23117648, conn 1247640>
executing prepstmnt 1830320 SELECT t0.id, t0.name FROM Project t0 WHERE
t0.EMPLOYEE_ID = ? [params=?]
2906 testPU TRACE [main] openjpa.jdbc.SQL - <t 23117648, conn 1247640> [0
ms] spent
2907 testPU TRACE [main] openjpa.jdbc.SQLDiag - load field: 'projects' for
oid=468 class entities.Employee
2907 testPU TRACE [main] openjpa.jdbc.SQL - <t 23117648, conn 1247640>
executing prepstmnt 26341410 SELECT t0.id, t0.name FROM Project t0 WHERE
t0.EMPLOYEE_ID = ? [params=?]
....
In my real application I have a complicated graph for a reservation of multiple
rooms with a customer with contacts and many product order lines and related
products and many more related entities. This problem occurs at different
places in the object graph (below the Customer entity and below the order line
entity) and s really killing the performance of the most important entity in
our application because it can take about 3.5 seconds to fetch a single
relatively simple reservation. It is especially bad when making a report on
multiple reservations based on a time range OpenJPA query.
My complex graph also seems to suffer from a "load field" problem that may be
caused by ProductOrderLine having a parent-child relation to itself ("package
deals"), not sure if this is an instance of the same problem.
Can someone from OpenJPA at least look into this issue? If necessary I can
create a JIRA issue with the simple Company - Employee - Project structure.
Regards,
Henno
-----Oorspronkelijk bericht-----
Van: Sirisha Chiruvolu [mailto:[email protected]]
Verzonden: woensdag 7 november 2012 18:02
Aan: [email protected]
Onderwerp: RE: Fetchgroups recursion problem
Henno,
Thanks for your response.
Yes my concern is c is getting fetched with more queries(N+1), rather being
fetched along with A.
Thanks
Sirisha
--
View this message in context:
http://openjpa.208410.n2.nabble.com/Fetchgroups-recursion-problem-tp3874382p7581654.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.