Разбираюсь с hibernate и mySQL.
Допустим, в service методе вызывается объект DAO, и на последнем вызывается метод, которым достаётся объект таблицы БД (код упрощённый):
void service() {
Dao d = new Dao();
Obj o = d.getObj();
}
Dao class
Obj getObj() {
sessionFactory = HibernateUtil.getSessionFactory();
Session session = factory.getCurrentSession();
ransaction ta = session.beginTransaction();
//manipulations to get object
ta.commit();
session.close();
}
Начитавшись статей в интернете, я понял что я не верно работаю с транзакциями (например при lazy fatching возникают проблемы в методе service).
Так же я увидел @Transactional, и, насколько я понял, эта аннотация должна решить мою проблему (вплоть до того, что мне не нужно будет вообще открывать и закрывать транзакции). Поставил эту аннотацию перед методом service(), но это не сработало (при попытке вытянуть lazy data из объекта - получаю ошибки).
В hibernate.cfg.xml про TransactionManager ничего не писал, т.к. не нашел что нужно прописать.
Направьте меня пожалуйста в нужную сторону - как это всё правильно настроить и как правильно с этим работать?