Длительные транзакции в JDBC

Я переписываю устаревшее приложение. По сути, это форма с кнопками отмены и сохранения, где сохранение означает фиксацию, а отмена означает откат!

Для этого приложение сохраняет Jdbc-соединение в сеансе для пользователя и извлекает его из сеанса для операций с базами данных.

Вот примерная последовательность утверждений:

-> user login
Connection conn = dataSource.getConnection();
conn.setAutoCommit(false);
-> user interaction
List items = conn.query(...);         //jdbc query
-> user interaction
Item item = conn.callStatement(...)   //call stored procedure inserting data
-> user interaction
conn.rollback(); // cancel all modifications by the user (in this session)
conn.commit();   // commit the rollback (?)

Я никогда не видел такого использования транзакций и, на мой взгляд, это неправильное использование концепции. Поскольку изменяющие хранимые процедуры для меня - черный ящик, боюсь, мне придется скопировать этот подход.

Есть ли лучший способ добиться этого? без сохранения соединения в веб-сессии? поддерживает ли это пружины PlatformTransactionManager?

Это действительно странный устаревший код ... (?!)

MWiesner 14.04.2018 11:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
156
0

Другие вопросы по теме