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

Maxim Solodovnik commented on OPENJPA-2925:
-------------------------------------------

the test can be fixed by adding

{code}
        Cat cat1 = em.find(Cat.class, parentId);
{code}

SQL generated from JPQL:

{code}
        Cat jpqlKitten_1 = em.createQuery("SELECT c FROM Cat c WHERE c.id = 
:id", Cat.class)
                .setParameter("id", kitten1Id)
                .getSingleResult();
{code}

also produces wrong results

[~romain.manni-bucau] can you please suggest where in the code can I check 
this? :))

> Accessing a non-recursive relation of an instance that has been loaded via a 
> recursive relation may produce wrong result
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2925
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2925
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 3.2.2, 4.0.0
>            Reporter: Juho Rinta-Paavola
>            Priority: Major
>
> Given the entities
> {code:java}
> @Entity
> public class Cat {
>     @Id
>     @GeneratedValue
>     private int id;
>     @OneToMany(mappedBy = "parent", fetch = FetchType.EAGER)
>     private List<Cat> children = new ArrayList<>();
>     @ManyToOne
>     private Cat parent;
>     @ManyToOne
>     private Human human;
> }{code}
> and
> {code:java}
> @Entity
> public class Human {
>     @Id
>     @GeneratedValue
>     private int id;
>     private String name;
>     @OneToMany(mappedBy = "human", fetch = FetchType.EAGER)
>     private List<Cat> cats = new ArrayList<>();
> } {code}
> Calling {{kitten.getParent().getHuman()}} will return the kitten's human 
> instead of the expected parent's human, if the kitten has a sibling and both 
> kittens belong to the same human.
> Failing unit test is available at 
> https://github.com/jrp6/openjpa/blob/openjpa-2925/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/recursive/TestRecursiveThenNonRecursiveRelationship.java



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to