@Version аннотация весной - PullRequest
0 голосов
/ 28 апреля 2020

Привет, ребята, как я могу использовать аннотацию @version, но вместо замены измененных данных добавьте новую строку с тем же идентификатором и увеличенной версией в базе данных. Например, здесь дублируется идентификатор 173. Единственное изменение - это версия, это моя цель.

введите описание изображения здесь

1 Ответ

0 голосов
/ 29 апреля 2020

@Version предназначен для оптимизации c и не должен использоваться для этого.

Как и Тейлор прокомментировал, вы можете использовать Hibernate Envers для чего-то действительно похожего. Это приведет к созданию отдельной таблицы, содержащей все ваши версии, в то время как основная таблица, в которую вы отображаете свою сущность, по-прежнему имеет только текущую версию.

Если вы хотите, чтобы все эти сущности фактически находились в одной таблице, вам следует просто сделайте существующий идентификатор плюс дополнительное поле версии идентификатором, а затем скопируйте объект и обновите версию перед ее изменением. Поле версии здесь означает обычное поле с цифрой c, которое вы используете в качестве версии, оно не должно быть аннотировано @Version.

Если вы действительно хотите использовать атрибут @Version Вы можете создать триггер для базовой таблицы, который будет создавать новую строку при каждом обновлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...