El Hibernate JavaDoc indica que Session.update(Object o)
generaría una excepción si ya hay una instancia persistente de o
, ¿verdad?Hibernate está * NO * lanzando una excepción (creo que debería)
If there is a persistent instance with the same identifier, an exception is thrown.
Sin embargo, el siguiente código no arroja nada cuando lo ejecuto. ¡Y creo que debería!
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! :(
Como se puede decir, el doble que trato de hacer múltiples update()
s, pero aún Hibernate teniendo fácil en mí.
Alguien tiene una corazonada ¿por qué?
EDIT: parece que sólo tiraría si otro objeto equivalente, por ejemplo, email2
con el mismo ID que email
. Supongo que la documentación fue un poco descuidada allí.
Sí! ¡los doctores nunca quieren escribirlo claro y me lleva a esta pregunta! – GMsoF