Hibernate JavaDoc afferma che Session.update(Object o)
genererebbe un'eccezione se è già presente un'istanza persistente di o
, giusto?Hibernate * NON * genera un'eccezione (penso che dovrebbe)
If there is a persistent instance with the same identifier, an exception is thrown.
Tuttavia, il seguente codice non genera nulla durante l'esecuzione. E penso che dovrebbe!
Email email = new Email("andre", "girafa", "hi");
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
session.save(email);
session.update(email);
session.update(email);
tx.commit();
// didn't throw... Let's try again
tx = session.beginTransaction();
session.update(email);
session.update(email);
tx.commit();
session.close();
// still nothing! :(
Come si può dire, due volte che cerco di fare più update()
s, ma ancora Hibernate sta prendendo facile su di me.
Qualcuno ha un sospetto perché?
EDIT: sembra che getterebbe solo se un altro oggetto equivalente, per esempio, email2
con lo stesso ID di email
. Immagino che la documentazione fosse piuttosto sciatta lì.
Sì! i doc non vogliono mai scriverlo e mi portano a questa domanda! – GMsoF