У нас есть веб-приложение на основе Spring, которое использует Hibernate для загрузки / сохранения своих сущностей в базовой базе данных.
Поскольку это бэкэнд-приложение, мы хотим не только разрешить нашему пользовательскому интерфейсу, но и сторонним инструментам вручную инициировать транзакции с БД. Вот почему звонящим нужно
- Вызовите метод
StartTransaction
и взамен получите идентификатор, на который они могут ссылаться
- Выполнять все соответствующие вызовы БД (например, создавать, изменять, удалять), обращаясь к этому идентификатору, чтобы выяснить, какие операции принадлежат запущенной транзакции
- Вызовите метод
CommitTransaction
, чтобы сообщить нашему бэкэнду, что транзакция может быть совершена сейчас (или в отрицательном случае будет вызван RollbackTransaction
)
Имея в виду, что вся обработка базы данных будет выполняться внутренне с помощью аннотаций постоянства Java, как мы можем открыть управление транзакциями для нашего пользовательского интерфейса, который ведет себя как стороннее приложение, которое не имеет прямого доступа к внутренним объектам, но имеет дело только с объектами передачи данных?