Я пытаюсь объединить JOTM и Hibernate EntityManager, чтобы протестировать мои EJB-компоненты в транзакционной среде, но вне контейнера.
Мой тест выглядит следующим образом:
- Старт JOTM
- Поместить транзакцию пользователя JOTM в JNDI
- Создание и настройка StandardXADataSource
- Поместите источник данных в JNDI
- Настройка гибернации и создание ЭМП
- Создать EM
- Начать транзакцию
- Присоединиться к транзакции в EM
- Хранить сущность
- Убедитесь, что оно сохранено
- Откат транзакции
- Проверка базы данных на количество записей
- Снеси все
Вот как выглядит мой код:
http://pastebin.com/m22a9f6b
Вот вывод журнала:
http://pastebin.com/m6da9383a
Проверка не пройдена на шаге 12 (строка 121).
Как видите, несмотря на то, что я откатил транзакцию, в БД есть запись. Похоже на транзакции, где они вообще не используются, и запись поступила в БД.
У вас есть идеи, как это может происходить и как это исправить?