Скажем, у меня есть постоянное свойство A
в сущности и 2 переходных поля T1
, T2
. Когда объект сохраняется, мне нужно вычислить A
на основе T1
, T2
(предположим, что это устаревшая база данных, которая не может быть изменена).Как вычислить постоянное свойство на основе свойства переходного процесса до его сохранения?
@Entity
Class MyEntity {
@Column(name="persistantA")
Integer A;
@Transient
Integer T1;
@Transient
Integer T2;
@PrePersist
void prePersist() {
A = T1 * T2;
}
}
Однако внутри метода prePersist()
все переходные поля очищаются --- они устанавливаются в исходное значение --- и это, кажется, правильное поведение для Hibernate/JPA.
Как преодолеть это?
Я использую весенний ботинок с Jpa и Hibernate.
Вы правы. Однако я хочу выполнить преобразование для persit() и merget(). Я решил эту проблему, вызвав функцию преобразования в методе setter. – xing