У меня есть модель, как это:JPA - сохранение @version, как тип данных длинного
@Entity
public class Event extends Model {
@Id
public long id;
public String name;
@Version
public Timestamp created;
}
При запуске .save()
на этом объекте, я получаю следующую запись:
id | name | created
----+--------+-------------------------
1 | Foobar | 2014-11-04 20:25:40.194
Как вы можете видеть, поле created
в формате SQL Timestamp. Можно ли изменить это как фактический тип данных BIGINT
или long
? Простое изменение created
к public long
дает погрешность:
java.lang.ClassCastException: java.lang.Long cannot be cast to java.sql.Timestamp
Удаление базы данных не является проблемой. Я изменил модель, чтобы использовать '@Version public Long created', но это поле теперь заполняется' 1' для каждой записи, а не что-то вроде 'System.getCurrentTimeMillis()'. Есть идеи? – doque
Общее правило: каждый раз, когда объект обновляется в базовой базе данных, его поле версии увеличивается на единицу. Попробуйте обновить существующий объект и вызвать flush/commit. – wypieprz