При использовании аннотации @Version обновление строки с использованием пружинных данных jpa доза не работает должным образом ....? - PullRequest
0 голосов
/ 12 марта 2019

У меня есть объект Base, в котором есть поле строки-версии, помеченное @ Version

@Version
private Integer rowVersion;

Я пытаюсь обновить объект, используя значение идентификатора. Я могу обновить его, используя ссылку, вызвав метод findByID(), установить каждое поле вручную и вызвать метод save(). Но если я получу объектный объект с идентификатором Id, я ожидаю обновить строку в базе данных с указанным идентификатором.

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

1 Ответ

0 голосов
/ 12 марта 2019

Убедитесь, что вы используете аннотацию javax.persistence.Version, а не Spring.

Убедитесь, что все ваши данные правильно сохранены в БД.(Столбец версии ДОЛЖЕН ИМЕТЬ значение, оно не должно быть null) Если у вас есть некоторые тестовые данные в БД, установите для них поле версии на 0 или 1.

Если поле версии - null spring Data JPA предполагает, что это новый объект, и сохраняет его, в противном случае он объединяет его.

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