我使用Wildfly 10 Deltaspike一起,并具有持续性的实体问题。当我尝试刷新它或者坚持引用它的另一个实体时,问题会在稍后出现。当我尝试刷新它时,我得到指示实体未被管理的异常。如果我试图坚持引用它的另一个实体,那就是当我得到指示该实体处于瞬态状态的异常时。Wildfly - deltaspike - 交易没有提交?
我使用JTA和实体应该保存它的另一种方法调用前面已经提交。
我一直在使用容器管理事务和Bean管理事务尝试。关于这一点,似乎只有apache-deltaspike.properties文件有改变的任何影响。我也手动启用了事务拦截器,但我不认为这是有所作为的,因为它启用或不显式激活它在beans.xml中。 @Transactional注解似乎并不实际提交事务(我使用各种参数来测试它,我会与预期不同的异常,但只是去同一个)。
@Transactional(Transactional.TxType.REQUIRES_NEW)
//@Transactional(Transactional.TxType.NEVER)
@Loggable
protected void startSession() {
entity = new Entity("something");
LOGGER.warn("entity:" + entity);
entityRepository.saveAndFlushAndRefresh(entity);
LOGGER.warn("end - entity:" + entity.getId());
}
日志报表显示的ID为0,未设置。现在,如果我查询的顺序,我看到它是在189被打了那么多次......
实际的例外是当我尝试这样做:
entityRepository.refresh(entity);
这时候,我得到的表示实体未被管理的异常。正如我所指出的,我可以看到事务拦截器根据日志被激活。
任何想法?