[ 
https://issues.apache.org/jira/browse/OPENJPA-2299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14061458#comment-14061458
 ] 

David Minor commented on OPENJPA-2299:
--------------------------------------

I had a similar issue and it looks like the same cause: 

http://openjpa.208410.n2.nabble.com/Avoiding-N-1-on-collection-in-recursive-relation-td7586916.html

> 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.2.1, 2.3.0
>            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 was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to