Я только начал изучать Hibernate, и я использую следующий шаблон (из документация) для каждой транзакции:
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;
}
Я могу согласиться с тем, что каждая операция должна быть заключена в транзакцию. Но мне кажется странным и ненужным откат select
, если он не сработает.
Я думаю, что я могу безопасно удалить блок catch
из приведенного выше примера. И из любой операции только для чтения. Я прав?