EntityManager在升级到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);
}

以前,这会导致运行更新语句,现在什么都没发生。如果在merge()之后调用entityManager.flush(),则会运行更新语句,但数据库不会反映更新后的实体。

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

这个问题似乎与这个问题非常相似(或相同(:如何修复JBOSS EAP 7.2中JTA事务的hibernate.transaction.flush_before_fullion问题?

删除

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

我的persistence.xml做到了。

最新更新