|
|
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите разобраться, почему не работает траназакшн менеджмент через аннотации. Environment: spring 3.0, tomcat 6, mysql (InnoDB). Если поставить брейкпоинт или выбросить исключение внутри метода save, то в базе появляется (остается) запись, сделанная до этого. Следовательно, подозреваю, что @Transaction не работает. В логах ничего от DataSourceTransactionManager нет. Код ниже. Спасибо. Spring context: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Фрагмент контроллера: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Фрагмент Repository: Код: 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 00:42:42 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinder, по умолчанию аннотация @Transactional не будет делать откат транзакции (rollback) при проверяемом исключении, а только для проверяемых. Проверить состояние транзакции можно методом boolean active = TransactionSynchronizationManager.isActualTransactionActive(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 00:50:13 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
rdm, а только при не проверяемых исключениях* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 00:51:01 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
Да, конечно, под исключением имел в виду именно runtime. Проверил с помощью TransactionSynchronizationManager.isActualTransactionActive() - нет активной транзакции. К тому же, если бы транзакция создавалась, разве изменения в БД появились бы не после ее завершения? Сейчас они появляются по мере выполнения statement-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 00:57:30 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinderДа, конечно, под исключением имел в виду именно runtime. Проверил с помощью TransactionSynchronizationManager.isActualTransactionActive() - нет активной транзакции. К тому же, если бы транзакция создавалась, разве изменения в БД появились бы не после ее завершения? Сейчас они появляются по мере выполнения statement-ов. Попробуй добавить в настройку логера вывод от org.springframework.transaction.annotation. c TRACE уровнем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:03:28 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
В логах ничего связанного с транзакциями не появилось. Либо что-то не так делаю. Пробовал: log4j.logger.org.springframework.transaction=DEBUG log4j.logger.org.springframework.transaction=TRACE Похоже, что вообще не срабатывает AOP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:20:18 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinder, то что вы пишете в Spring context у вас в одном файле? Может у вас tx... в dispather-servlet.xml? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:26:12 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
tx в persistence.xml, а context:component-scan и mvc в applicationContext.xml, еще есть security.xml Фрагменты web.xml: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:30:24 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
rdm, спасибо огромное! Разнес по разным файлам <context:component-scan base-package="by.vsesushi" /> и контекст с настройкой mvc, и заработало. Единственное, что хотелось бы понять, почему так. Буду благодарен за объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:36:19 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinder, попробуй перенести bean txManager и <tx..> в applicationContext. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:39:35 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinderrdm, спасибо огромное! Разнес по разным файлам <context:component-scan base-package="by.vsesushi" /> и контекст с настройкой mvc, и заработало. Единственное, что хотелось бы понять, почему так. Буду благодарен за объяснение. Это к документации Spring, вот тут на русском http://mzungu-dev.livejournal.com/975.html, сам не читал, но вроде как раз по вашей теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:45:52 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
Ссылка не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:49:13 |
|
||
|
Spring jdbc + @Transaction не работает
|
|||
|---|---|---|---|
|
#18+
vgrinderСсылка не работает. http://mzungu-dev.livejournal.com/975.html запятая попала) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2013, 01:51:23 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=236&tid=2129646]: |
0ms |
get settings: |
18ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
46ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 313ms |
| total: | 526ms |

| 0 / 0 |
