0

Я переключился на новую версию Spring Data Rest (2.4.0.RELEASE), чтобы использовать заголовок ETag, который позволяет клиентам обновлять только последние данные.Spring Data @Version с JPA @Version

Но теперь я получаю исключение в моем коде:

причиненном: java.lang.IllegalArgumentException: @ javax.persistence.Column (обнуляемого = истинный, уникальный = False, точность = 0, имя = i_version , length = 255, scale = 0, updatable = true, columnDefinition =, table =, insertable = true) @ javax.persistence.Version() @ org.springframework.data.annotation.Version() private java.lang.Long com .mycompany.models.entity.base.ModifiableEntity.version помечается org.springframework.data.annotation.Version, но необходимо использовать javax.persistence.Version, чтобы вызвать оптимистичным правильно блокировки

Код:

@org.springframework.data.annotation.Version 
@javax.persistence.Version 
@Column(name = "i_version") 
private Long version; 

Означает ли это, что я не могу использовать оба аннотаций на одном поле? Что я могу сделать, чтобы применить правильную обработку версии?

Библиотека:

  • пружинные данные JPA 1.9.0
  • весна-данные-Обще 1.11.0
  • весна-данные покоя webmvc 2.4.0
  • весна-данные -rest-core 2.4.0
+0

Почему вы используете обе аннотации? Удалите '@ org.springframework.data.annotation.Version', и он будет работать нормально. – Tunaki

+0

Я хочу использовать заголовок ETag, чтобы клиенты могли обновлять только последние данные. –

ответ

0

Вы используете spring-data-jpa?

был открыт вопросом JIRA на этом: https://jira.spring.io/browse/DATAREST-160 (решено в версии 2.3 пружинных данные-покой)

(Существует прямая связь с объяснением так там)

Итак, я бы сказал, , просто используйте javax.persistence.Version, если у вас есть последняя версия spring-data-rest lib ...

Смежные вопросы