Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 14
1

@Transactional метод и проверка исключений

17.06.2013, 15:23. Показов 1008. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется стандартный класс AccountingDAO для сохранения изменений аккаунтов. Так вот приложение переводит деньги с одного аккаунта на другой и сохраняет в БД изменения
Java
1
accountingDao.saveOrUpdate(userAccount,sessionAccount);
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Transactional(propagation=Propagation.REQUIRES_NEW)
    public void saveOrUpdate(GameEntity... objects) {
 
        for (GameEntity obj : objects) {
            if (obj == null) continue;
            
            if (obj.getId() != null) {
                em.merge(obj);
            } else {
                em.persist(obj);
            }
        }
 
    }
Так вот все работает, но иногда деньги снимаются с одного счета и не переводятся на другой и после чего вовсе исчезают. В документации Spring написано откат транзакций происходит только при неуправляемых исключениях, во всех других случаях отката не происходит. Мне кажется у меня выбрасывается управляемое исключение после снятия денег с одного счета и не происходит отката.
Могу ли я использовать блок try/catch, чтобы сначала записать в лог то что произошло исключение а затем откатить транзакцию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2013, 15:23
Ответы с готовыми решениями:

Проверка исключений
Здравствуйте форумчане, в общем я допилил свою программу, сама программа простая, но суть в том что...

Проверка всех исключений
здравствуйте. Собственно есть один блок try и несколько catch (с исключениями); При возникновении...

Проверка ввода посредством исключений
Надо обязательно использовать механизм исключений для проверки ввода строки. class...

Метод жордановых исключений
Решить СЛАР методом жордановых исключений -3x1+3x2+2x3-2x4=14 -3x1-3x2+2x3-2x4=-10...

2
2586 / 2259 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
17.06.2013, 16:00 2
Цитата Сообщение от bossman007 Посмотреть сообщение
Могу ли я использовать блок try/catch, чтобы сначала записать в лог то что произошло исключение а затем откатить транзакцию?
да просто надо из блока кетч ретровнуть исключение дальше чтобы оно не погасло в нём
0
66 / 55 / 11
Регистрация: 16.04.2010
Сообщений: 190
Записей в блоге: 1
17.06.2013, 17:09 3
Цитата Сообщение от bossman007 Посмотреть сообщение
Мне кажется у меня выбрасывается управляемое исключение
Управляемые исключения где-то должны быть обработаны, они не могут быть проигнорированы.
Хотя могут - в пустом блоке catch.
Странно, что в лог журнале у Вас ничего нет.
0
17.06.2013, 17:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2013, 17:09
Помогаю со студенческими работами здесь

Обработка исключений и метод ToString
using System; // Создание исключения. class NonIntResultException : ApplicationException { ...

Проверка исключений PDO. Fatal error: Uncaught exception
<?php // $db = mysql_connect("localhost","root",""); // mysql_select_db("Fraerov",$db); ...

Аннотация @Transactional
Вылетает такой ексепшн, при создании курса. org.hibernate.HibernateException: save is not valid...

HIbernate transactional
Всем привет, помогите пожалуйста разобраться. У меня есть пара сущностей, к примеру Student, и...

Spring Data + Transactional
Добрового времени суток, пишу тесты к дао. public interface RailwayTicketDao extends...

Spring repositories or/and transactional
Всем привет. Подскажите пожалуйста на пальцах логику применения @Repository и @Transactional. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru