升级到Wildfly 18后,EntityManager已停止运行更新语句

时间:2019-11-10 23:44:30

标签: java jpa wildfly java-11 wildfly-18

我刚从Wildfly 12更新到18,从Java 8更新到11。我的项目中没有代码更改。运行集成测试产生了一个非常奇怪的问题。 UPDATE语句似乎不再运行。例如:

@Transactional
public void updateStatus(final long id, final Status status)
{
    final Item item = entityManager.find(Item.class, id, LockModeType.PESSIMISTIC_WRITE);
    item.setStatus(status);
    entityManager.merge(item);
}

以前,这将导致运行更新语句,现在什么也没有发生。如果我在entityManager.flush()之后调用merge(),则会运行一条update语句,但是数据库无法反映出更新后的实体。

不知道是什么原因导致这种情况。我唯一能想到的是,wildfly 18中的某些默认配置不同于12?

1 个答案:

答案 0 :(得分:1)

此问题似乎与此非常相似(或相同):How to fix hibernate.transaction.flush_before_completion issue with JTA transactions in JBOSS EAP 7.2?

移除

<property name="hibernate.transaction.flush_before_completion" value="true" />

通过我的persistence.xml完成了技巧。