Uploaded image for project: 'Hibernate ORM'
  1. Hibernate ORM
  2. HHH-3332

Hibernate duplicate then child entity's on merge

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Cannot Reproduce
    • Affects Version/s: 3.2.6
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      JDK 1.6
      Oracle 9i
      Hibernate 3.2.6
      Hibernate Annotations 3.3.1
      Hibernate EntityManager 3.3.2
      Standalone Running
    • Bug Testcase Reminder (view):

      Bug reports should generally be accompanied by a test case!

    • Last commented by a user?:
      true

      Description

      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.

        Attachments

          Activity

            People

            • Votes:
              10 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: