Le JavaDoc Hibernate indique que Session.update(Object o)
déclencherait une exception s'il existe déjà une instance persistante de o
, non?Hibernate est * PAS * lancer une exception (je pense qu'il devrait)
If there is a persistent instance with the same identifier, an exception is thrown.
Cependant, le code suivant ne lance rien lorsque je l'exécute. Et je pense que ça devrait!
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! :(
Comme vous pouvez le dire, deux fois j'essaie de faire plusieurs update()
s, mais toujours Hibernate prend facilement sur moi.
Quelqu'un a une intuition pourquoi?
EDIT: il semble que cela ne ferait que jeter si un autre objet équivalent, par exemple, email2
avec le même ID que email
. Je suppose que la documentation était un peu bâclée là-bas.
Oui! les docs ne veulent jamais l'écrire clairement et cela m'amène à cette question! – GMsoF