У меня есть следующие поля в моем Entity
классе:Использование LocalDateTime с @version аннотацию в JPA
@Version
@Column(name = "updated")
private LocalDateTime lastUpdated;
@Column(name = "created")
private LocalDateTime created;
Поле created
работает отлично, потому что я осуществил AttributeConverter
от LocalDateTime
до Timestamp
.
lastUpdated
поля дает следующее сообщение об ошибке при развертывании контейнера:
java.lang.ClassCastException: org.hibernate.type.descriptor.converter.AttributeConverterTypeAdapter cannot be cast to org.hibernate.type.VersionType
Я знаю, что это может быть решено с помощью Timestamp
в качестве переменного типа lastUpdated
вместо LocalDateTime
.
Я хочу знать, могу ли я переопределить поведение аннотации @Version
, чтобы принять LocalDateTime
как тип переменной.
Я не думаю, что мы можем использовать аннотацию версии для LocalDateTime. Поддерживаемый тип данных для поля версии аннотации: int, Integer, short, Short, long, Long, java.sql.Timestamp. – sauumum
Да, я знаю. Вопрос в том, является ли это поведение аннотации '@ Version' чрезмерным, поэтому оно будет принимать« LocalDateTime ». –
Вы пробовали с зависимостью 'hibernate-java8'? Ниже из hibernate doc 'Поддержка использования конкретных типов данных Java8, таких как любой тип даты/времени JSR 310 в модели домена – Saravana