|
|
|
Spring @Transactional & Rollback: великие танцы с бубном
|
|||
|---|---|---|---|
|
#18+
Народ, я в ступоре. Есть таблица: Код: java 1. Какие заклинания в коде надо делать, чтобы вот это: Код: java 1. 2. 3. 4. - работало в одной транзакции и, ес-сно, откатилось ввиду попытки нарушения ПК ? Про @Transactional и то, что по дефолту НЕ будут откатываться checked-исключения - знаю. Вроде как надо добавить аннотацию @Service, но пробовал - бестолку. Как в итоге завести эту шайтан-телегу ? Вот мои потуги: Customer.java : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вспомогат. класс для показа имени метода: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. CustomerDAO : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. CustomerManager : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. spring-xml : Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Тестилка : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Результат тестилки: после каждого insert'a добавляет commit. Ткните носом, чего тут надо подправить ? ЗЫ. Добавлять <property name="defaultAutoCommit" value="false" /> (к datasource) бестолку, ибо @Transactional. Но я попробовал и получил вообще "сюрприз": каждый вызов CustomerDAO.create(), в котором и происходят insert'ы, откатывается. И в таблице в итоге будет ноль записей :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 10:13 |
|
||
|
Spring @Transactional & Rollback: великие танцы с бубном
|
|||
|---|---|---|---|
|
#18+
ozzmosis, так public class TxDmlMain - как бе же не бин и аннотация не пашет же... надо что нить типа . TxDmlMainc tx = ctx.getBean("txDmlMain ", TxDmlMain .class); делать же, чтобы все как задумано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:06 |
|
||
|
Spring @Transactional & Rollback: великие танцы с бубном
|
|||
|---|---|---|---|
|
#18+
Озверин, да не помогает почему-то... Вот что поменено: spring.xml : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. TxDmlMain.java: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. - результат тот же: после каждого стейтмента в базу идёт commit. Т.е. транзакции на все 4 стейтмента - на самом деле нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 14:15 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=148&tid=2126116]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
304ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 640ms |

| 0 / 0 |
