[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3332) Hibernate duplicate then child entity's on merge
Vlad Mihalcea (JIRA)
noreply at atlassian.com
Thu Jan 21 02:34:31 EST 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=35289#action_35289 ]
Vlad Mihalcea commented on HHH-3332:
------------------------------------
This replicates if you save the Child and the Parent also has a reference to it, and not when saving the Parent.
See my previous example, when I save sr1, you get 2 SubRound rows, if instead I save r1, I only get one SubRound.
I hope this example helps.
> Hibernate duplicate then child entity's on merge
> ------------------------------------------------
>
> Key: HHH-3332
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3332
> Project: Hibernate Core
> 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
> Attachments: ExampleBug.zip
>
>
> 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