Hibernate иногда не обновляет сущность правильно - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть фрагмент кода, который иногда не работает правильно. Проблема периодическая.

У меня есть две сущности - Product и ProductVersion. Всякий раз, когда кто-то вносит изменения в продукт, создается новая productVerison, которая сохраняется как последняя версия в таблице productVersion. Также атрибут is_active старой версии продукта обновляется до false. Вот почему мой код обновления:

@Transactional
updateProduct(ProductUpdateRequet request){
oldVersion= productVersionRepo.getLatestProductVersion() -- This returns latest saved version
oldVersion.setIsActive(false)
productVersionRepo.save(oldVersion) -- This will change isActive flag of oldVersion to False
ProductVersion newVersion = new ProductVersion()
version.setPrice(request.getPrice())
version.setIsActive(true)
productVersionRepo.save(newVersion) -- This will save new version
}

Этот код работает просто отлично. Но иногда это не обновляет oldVersion. То есть я вижу, что isActive верно для обеих версий в БД.

Я хочу знать, как Hibernate обрабатывает такие случаи. Я также пытался использовать productVersionRepo.flu sh () после сохранения изменений старой версии, но даже это, похоже, не работает.

...