エンティティに永続プロパティA
があり、2つの一時フィールドT1
,があるとします。エンティティが永続化されている場合、T1
、T2
に基づいてA
を計算する必要があります(これは変更できない従来のデータベースと仮定します)。一時的なプロパティに基づいて永続プロパティを計算する方法
@Entity
Class MyEntity {
@Column(name="persistantA")
Integer A;
@Transient
Integer T1;
@Transient
Integer T2;
@PrePersist
void prePersist() {
A = T1 * T2;
}
}
しかしprePersist()
メソッド内のすべてのtransientのフィールドは、それらが初期値に設定されている---クリア---これは、Hibernate/JPAのための適切な行動であるように思われています。
これを解決するにはどうすればよいですか?
私はJpaとHibernateでSpringブートを使用しています。
あなたは正しいです。しかし、私はpersit()とmerget()の両方の変換を実行したい。私は最後にsetterメソッドでtransform関数を呼び出すことでこの問題を解決しました。 – xing