|
|
|
Create Spring Transaction in JUnit test
|
|||
|---|---|---|---|
|
#18+
Не могу понять следующее. Есть тест на создание сущности: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Он проходит, все нормально. Если я попытаюсь сделать так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. вылетает Exception: java.lang.IllegalStateException: Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT там где я пытаюсь открыть транзакцию. Вычитал, что LocalContainerEntityManagerFactoryBean создает thread-safe entityManager. Хотя все равно непонятно, каким образом оно все пересекается в данном случае. Сделал еще так: аннотировал метод @Transactional и убрал открытие и закрытие транзакции, чтобы все делал Spring. Теперь тест вроде бы как и проходит, но после теста запускается ResourceDataBasePopulator, который дропает схему. И теперь на месте где необходимо удалить CONSTRAINT. все просто зависает. Кому не сложно, объясните пожалуйста в чем может быть дело(1 - почему я не могу открыть свою транзакцию, 2 - почему в тестах не катируется @Transactional (вроде бы как)). Да и еще забыл добавить, что класс аннотирован @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"/test-context.xml"}) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 02:13 |
|
||
|
Create Spring Transaction in JUnit test
|
|||
|---|---|---|---|
|
#18+
Немного сам въехал. Значит Spring сам контролирует создание и коммит всех транзакций. Все что нужно было, так это указать DefaultRollback = true для всех тестов, убрать ResourceDataBasePopulator и указать @Transactional для класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 00:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38579624&tid=2127554]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 383ms |

| 0 / 0 |
