При загрузке объекта домена с использованием hibernate, а не его изменения, мне все равно нужно определить пружинную транзакцию на уровне службы? - PullRequest
1 голос
/ 29 июля 2011

Я сейчас изучаю Spring и Hibernate и у меня есть вопрос по транзакциям:

Если у меня есть пример DAO следующим образом:

@Override
public DatabaseObject getDatabaseObject(int id) {
   Session session = sessionFactory.getCurrentSession();

   return (DatabaseObject) session.createCriteria(DatabaseObject.class).add(Restrictions.eq("example", 3)).uniqueResult();
}

И в моем слое обслуживания у меня есть пример метода

@Override
public int someBusinessLogic(int number) {
   DatabaseObject object = dao.getDatabaseObject(number);
   //some business logic none of which modifies my databaseobject
}

Нужно ли сделать транзакцию BusinessLogic транзитной, и если да, то почему?

1 Ответ

2 голосов
/ 29 июля 2011

Вы можете уйти без явной транзакции, но вы столкнетесь с исключениями, если у вас есть ленивые отношения / коллекции из DatabaseObject и попытаетесь получить к ним доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...