[
https://issues.apache.org/jira/browse/OPENJPA-2299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vermeulen updated OPENJPA-2299:
-------------------------------
Attachment: OPENJPA-2299-tests.zip
Added an OpenJPA test case which shows the problem.
> N+1 select when eager fetching two collection fields of the same entity type
> ----------------------------------------------------------------------------
>
> Key: OPENJPA-2299
> URL: https://issues.apache.org/jira/browse/OPENJPA-2299
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc, jpa, performance
> Affects Versions: 2.3.0, 2.2.1
> Reporter: Vermeulen
> Attachments: OPENJPA-2299-tests.zip
>
>
> I have a ProductOrder entity that has two @OneToMany lists of
> ProductOrderLines. When selecting from ProductOrder, eager fetching does not
> seem to recurse into the second list so that each field of each
> ProductOrderLine in the second list is fetched using a separate "load field"
> operation.
> The problem does not occur when there is only one List.
> @Entity
> public class ProductOrder {
> @JoinColumn(name = "PLANNED_ORDER_ID")
> @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
> private List<ProductOrderLine> plannedOrderLines = new
> ArrayList<ProductOrderLine>();
> @JoinColumn(name = "ACTUAL_ORDER_ID")
> @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
> private List<ProductOrderLine> actualOrderLines = new
> ArrayList<ProductOrderLine>();
> Expected nr of queries: 1 (for Order) + 1 (for Order.plannedOrderLines) + 1
> (for Order.actualOrderLines).
> Actual nr of queries: same as expected + 1 query for each field of each
> ProductOrderLine in Order.actualOrderLines.
> Same problem exists when using @JoinTable instead of @JoinColumn (JPA 2.0
> only).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira