Ho appena iniziato l'apprendimento Hibernate e Io uso il seguente modello (da documentation) per ogni transazione:Hibernate - Devo davvero eseguire il rollback della transazione di sola lettura fallita?
private Session session;
private Transaction transaction;
protected List selectAll(Class clazz) throws HibernateException {
List objects = null;
try {
session = MyHibernateHelper.getSessionFactory().openSession();
transaction = session.beginTransaction();
// SELECT ALL
objects = session.createCriteria(clazz).list();
transaction.commit();
} catch (HibernateException exc) {
if (transaction != null) transaction.rollback();
throw exc;
} finally {
session.close();
}
return objects;
}
posso accettare che ogni operazione deve essere avvolto in una transazione. Ma mi sembra strano e inutile il rollback select
, nel caso in cui fallisca.
Penso di poter rimuovere in modo sicuro il blocco catch
dall'esempio precedente. E da qualsiasi operazione di sola lettura. Ho ragione?
dipende da come è stata effettuata la selezione. se invocassi la semantica di blocco, il rollback rilasciava quelle serrature. –