EntityManager прекратил выполнение операторов обновления после обновления до wildfly 18 - PullRequest
0 голосов
/ 11 ноября 2019

Я только что обновил с 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 Ответ

1 голос
/ 11 ноября 2019

Эта проблема кажется очень похожей (или такой же) на эту: Как исправить проблему hibernate.transaction.flush_before_completion с транзакциями JTA в JBOSS EAP 7.2?

Удаление

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

Из моего persistence.xml сделал трюк.

...