Невозможно использовать метод сохранения deltaspike внутри теста arquillian
Я использую тест Arquillian для создания некоторых фиктивных объектов и проверки общей функциональности JPA/ гибернации и архитектуры сопоставления доменов.
Внутри теста я внедряю сервис без сохранения состояния, который отвечает за вызов методов deltaspike-репозиториев для извлечения, сохранения и сохранения сущностей.
В то время как service.persist(entity)
отлично работает, service.save(entity)
выдает исключение:
Caused by: java.lang.IllegalStateException:
The method public abstract javax.persistence.EntityTransaction javax.persistence.EntityManager.getTransaction()
cannot be invoked in the context of a JTA EntityManager.
Мой тест:
@Inject
CharacteristicService service;
@Inject
DroolsAwardsService droolsAwardsService;
static BrCharacteristicGroupD charGroup;
@Test
@InSequence(1)
public void initializeData() {
BrCharacteristicGroupDescrD charGroupDescr = new BrCharacteristicGroupDescrD();
charGroupDescr.setCharacteristicGroupDescr("Employee Group");
///....more code
charGroup = new BrCharacteristicGroupD();
charGroup.addCharacteristicDescription(charGroupDescr);
charGroup.setMultipleLinesFlg(TestConsts.FLAG);
service.persistCharacteristic(charGroup);
Assert.notNull(charGroup.getCharacteristicGroupId());
}
CharacteristicService:
@Stateless
public class CharacteristicService {
@Inject
private CharacteristicGroupRepository brCharacteristicGroupRepository;
@Inject
private LanguageService languageService;
@Inject
private Logger logger;
public BrCharacteristicGroupD persistCharacteristic(BrCharacteristicGroupD characteristicD) {
BrCharacteristicGroupT characteristicT = CharacteristicMapper.convert(characteristicD);
BrCharacteristicGroupT characteristicTResult = brCharacteristicGroupRepository.save(characteristicT );
BrCharacteristicGroupD characteristicDresult = CharacteristicMapper.convert(characteristicTResult);
return characteristicDresult;
}
}