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);
}
Раньше это приводило к запуску оператора обновления, теперь ничего не происходит. Если я позвонюentityManager.flush()
после merge()
выполняется оператор обновления, но база данных не отражает обновленную сущность.
Понятия не имею, что может вызвать такого рода вещи. Единственное, что я могу придумать, это то, что какая-то конфигурация по умолчанию в wildfly 18 отличается от 12?
1 ответ
Эта проблема кажется очень похожей (или такой же) на эту: как исправить проблему hibernate.transaction.flush_before_completion с транзакциями JTA в JBOSS EAP 7.2?
Удаление
<property name="hibernate.transaction.flush_before_completion" value="true" />
От моего persistence.xml
сделали свое дело.