Откат транзакций, javaee

208
26 августа 2018, 11:40

Возник вопрос на счет отката транзакций, допустим в сервлете. Допустим, есть следующая ситуация:

doPost(args){
    DaoFactory daoFactory = DaoFactory.getInstance();
    UserDao userDao = daoFactory.getUserDao();
    userDao.addNewUserToDB(user);
    CarDao carDao = daoFactory.getCarDao();
    carDao.addNewCarToDB(car);
}

Теперь сам вопрос. Допустим, мы отловим исключение при добавлении автомобиля. И нам нельзя допустить, чтобы добавился пользователь без добавления автомобиля. Как откатить весь метод?

Код не настоящий, если кто не понял, просто что-то типо псевдо-кода.

Answer 1

Вы можете использовать BMT в JPA для маркировки транзакции. Или же вынести код отдельный бин к которому применить CMT. He нужно писать весь код в сервлете, поскольку он не может управлять транзакциями.

Answer 2

В Spring есть два способа формирования транзакций, либо с помощью аннотаций, либо рукописно(возможно с помощью AOP реализовать). А в чистой Java можно сделать выше абстракцию(TransactionManager) для всех сервисов и там реализовать откат или выполнение транзакций.

READ ALSO
Правило написания html-тега

Правило написания html-тега

Вопрос звучит странно, я сейчас все объясню

181
Подключение шрифтов. Анонимайзер

Подключение шрифтов. Анонимайзер

Всем привет, подключил шрифт 4 форматов на сайте perfectpicru, все работает, Но если захожу с анонимайзера http://cameleo

161
Как получить параметры картинки до её загрузки?

Как получить параметры картинки до её загрузки?

Возможно ли как-то получить высоту и ширину картинки до её загрузки(с сервера на клиент), но без использования PHP и прочего back-end?

161
JS - изменение класса без потери стилей

JS - изменение класса без потери стилей

Есть html страница со списком элементов, который объединяет общий className и, соответственно, привязанные к этому классу стилиЕсть ли способ полностью...

176