Я пытаюсь использовать метод слияния Entity Manager для обновления объекта в базе данных, когда в объекте нет изменений.Скажем, строка имеет следующие атрибуты:
id DECIMAL(11) NOT NULL,
name CHAR(20) NOT NULL,
lastModified TIMESTAMP NOT NULL FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP
И, скажем, у меня есть объект (назовем его Person) в базе данных со следующими атрибутами:
{id: 1, name: "example", lastModified: 2019-05-22 16:24:54.771}
Итак, lastModifiedАтрибут - это то, что БД обновляет каждый раз, когда в строке происходит изменение.
Теперь, когда я сначала выбираю объект, а затем обновляю имя человека до «example» (то же значение, которое у него уже естьв базе данных), а затем с помощью слияния для его обновления атрибут lastModified, по-видимому, не обновляется в базе данных.т.е.
Person person = em.find(Person.class, 1)
person.setName("example")
em.merge(person)
После вышеописанных действий lastModified по-прежнему 2019-05-22 16: 24: 54.771 (так же, как и ранее).Теперь, если бы я изменил имя, т.е.
Person person = em.find(Person.class, 1)
person.setName("new name")
em.merge(person)
Так что теперь lastModified также обновился бы.
Любая помощь с этим?Может кто-нибудь объяснить мне, почему строка не обновляется, если в объект не внесены изменения?:) Спасибо!