Прежде всего, persist () для новых объектов (вставка) не обновляется.Любой объект, измененный в контексте постоянства, будет автоматически обновлен.
JPA не предоставляет никакого стандартного способа узнать, что изменилось.Поэтому вам нужно либо отслеживать изменения самостоятельно, либо использовать API-интерфейс, специфичный для провайдера JPA.
В EclipseLink, если вы используете событие preUpdate EclipseLink DescriptorEventListener вместо JPA, вы получаете объект ObjectChangeSet, присоединенный к DescriptorEvent, который содержитизменения.
Другой способ в JPA, если вы используете ткачество, - привести ваш объект к ChangeTracker и вызвать _persistence_getPropertyChangeListener (), затем getObjectChangeSet ().
Если вы используете TopLink Essentials, то дескрипторсобытия также применяются, но отслеживание изменений не было сплетено.