Quantcast
Channel: JPA EntityManager: Why use persist() over merge()? - Stack Overflow
Viewing all articles
Browse latest Browse all 17

Answer by George Papatheodorou for JPA EntityManager: Why use persist() over merge()?

$
0
0

Scenario X:

Table:Spitter (One) ,Table: Spittles (Many) (Spittles is Owner of the relationship with a FK:spitter_id)

This scenario results in saving : The Spitter and both Spittles as if owned by Same Spitter.

        Spitter spitter=new Spitter();      Spittle spittle3=new Spittle();         spitter.setUsername("George");    spitter.setPassword("test1234");    spittle3.setSpittle("I love java 2");           spittle3.setSpitter(spitter);                   dao.addSpittle(spittle3); // <--persist         Spittle spittle=new Spittle();    spittle.setSpittle("I love java");    spittle.setSpitter(spitter);            dao.saveSpittle(spittle); //<-- merge!!

Scenario Y:

This will save the Spitter, will save the 2 Spittles But they will not reference the same Spitter!

        Spitter spitter=new Spitter();      Spittle spittle3=new Spittle();         spitter.setUsername("George");    spitter.setPassword("test1234");    spittle3.setSpittle("I love java 2");           spittle3.setSpitter(spitter);                   dao.save(spittle3); // <--merge!!           Spittle spittle=new Spittle();    spittle.setSpittle("I love java");    spittle.setSpitter(spitter);            dao.saveSpittle(spittle); //<-- merge!!

Viewing all articles
Browse latest Browse all 17

Trending Articles