Belki aptalca bir soru, ancak EntityManager.merge() bir istisna atarsa catch bloğundaki bir işlemde geri alma yapmak gerekli midir? Veya istisnanın kendisi, birleşme bir sonraki seferde, istisna atmış olan önceki değişiklikleri yapmayacağımı taahhüt etmeyecek şekilde çalışacağı anlamına mı geliyor?Yakalama bloğundaki bir işlemde geri alma yapmak gerekli mi?
Örnek:
public void setPerson(Person person) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyLib");
EntityManager em = emf.createEntityManager();
try {
if(!em.getTransaction().isActive()){
em.getTransaction().begin();
}
em.merge(person);
em.getTransaction().commit();
emf.getCache().evict(Person.class); // clear Person cache
} catch (Exception ex){
em.getTransaction().rollback(); // Is this necessary?
} finally {
em.close();
}
}
Ama daha sonra yakalama blokunda geri dönüşün olması zarar görmediğini söyleyebilir miydiniz? Ben haklı mıyım – Rox
@Rox Sadece istenmeyen etkilerden kaçınmak istiyorsanız, bu zarar vermez. –