merge (): 用來新增或修改一筆資料
Entity1 e = new Entity1();
// scenario 1
//交易開始
em.persist(e);
e.setField1(Value);
// 交易結束後,
Field1 會自動更新至資料庫
// scenario 2
// 交易開始
e = new MyEntity1();
em.merge(e);
e.setField1(anotherValue);
// 交易結束後,Field1 不會更新至資料庫,除非你再作一次 merge
// scenario 3
// 交易開始
e = new Entity1();
Entity1 e2 = em.merge(e);
e2.setField1(anotherValue);
// 交易結束後,
Field1 會自動更新至資料庫,但是指 e2 不是 e
參考文件
http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/EntityManager.html
http://stackoverflow.com/questions/1069992/jpa-entitymanager-why-use-persist-over-merge
http://blog.csdn.net/javavenus/article/details/6289616
沒有留言:
張貼留言