[hibernate-issues] [Hibernate-JIRA] Created: (HHH-3332) Hibernate duplicate then child entity's on merge

Rodrigo de Assumpção (JIRA) noreply at atlassian.com
Thu Jun 5 12:45:33 EDT 2008


Hibernate duplicate then child entity's on merge
------------------------------------------------

                 Key: HHH-3332
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3332
             Project: Hibernate3
          Issue Type: Bug
    Affects Versions: 3.2.6
         Environment: JDK 1.6
Oracle 9i
Hibernate 3.2.6
Hibernate Annotations 3.3.1
Hibernate EntityManager 3.3.2
Standalone Running
            Reporter: Rodrigo de Assumpção
            Priority: Critical


The method merge from EntityManager causes a duplication of child entity's.

class Father:
    @OneToMany(mappedBy = "father", cascade={CascadeType.ALL}, fetch=FetchType.LAZY) 
    private List<Child> childList;

class Child:
    @ManyToOne  @JoinColumn(name = "ID_FATHER")
    private Father father;

class BugTest
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("JpaTestHB");
        EntityManager em = emf.createEntityManager();
        
        Father f = (Father) em.createQuery("SELECT f FROM Father f  WHERE f.id = 1").getSingleResult();
        
        Child c = new Child();
        c.setFather(f);
        f.getChildList().add(c);
        
        em.getTransaction().begin();
        em.merge(f);
        em.getTransaction().commit();


The execution of BugTest Class causes tow insert's on table "child".
If you change the fetch mode to EAGER (into Father class) the problem not occurs.

I make the same test with Toplink, and it make a unique insert, normal.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       




More information about the hibernate-issues mailing list