Я использую Hibernate 5.2.1 и 4.3.0 SpringСделать Hibernate неудачу на отсутствие сделки
Мое текущее понимание:
- Hibernate требует активной транзакции базы данных для операций записи для надежной работы.
- Если транзакции отсутствуют, режим сброса устанавливается на АВТО (по умолчанию), и режим автоматического фиксации не включен, спящий режим является довольно непредсказуемым. В зависимости от звонков
.flush()
,.clear()
,.openSession()
/.getCurrentSession()
один Мощь- триггер на запись в базу данных
- быть в состоянии прочитать объект
.persist()
ред который не является и не будут записаны в базу данных - молча теряет
.persist()
объекты под ред - написать некоторые объекты в базу данных, но не писать другие (при использовании, например, отношений)
Я потратил слишком много времени на не столь веселые охоты за ошибками, которые закончились, когда я понял, что мне не хватает аннотации @Transactional
, пропустил настройку разумного режима транзакции или не смог настроить диспетчер транзакций весной.
Возможно ли, чтобы спящий режим громко жаловался, когда у него нет транзакции?
Я подхожу к этому неправильно? Я что-то не понял?
Просто для справки:
- Spring Transaction documentation
- Hibernate Flushing documentation
- Hibernate Transaction documentation