では正常に動作していない @Versionアノテーションは、私は基本エンティティクラスに持ってJPA/EclipseLinkの
JPAは自動的に値をインクリメントしますバージョン属性@、ようフィールド(タイムスタンプ)の1が持っている
。ただし、タイムスタンプの値が更新されず、編集された日付が作成された日付よりも小さい場合もありますが、これは理論的には起こりません。
編集済みの値をプログラムで設定していません。ここで
は私のエンティティクラスである:
public class BaseEntity implements Serializable {
@Column(name = "CREATED")
private Timestamp created;
@Column(name = "EDITED")
@Version
private Timestamp edited;
// other fields, getters and setters
}
この@Versionアノテーションについての多くの記事を読みましたが、この値は更新されませんなぜ私は理解していない、この背後にある理由は何ですか。
いくつかのいずれかが私を助けている場合は、素晴らしいことだ。ここ
おかげ
トランザクションがコミット(またはフラッシュが呼び出された後)された後、マネージエンティティの値が変更されていることを確認します。よくある間違いは、JPAがDBに行く直前に値を更新するだけなので、分離されたエンティティの値を調べるか、またはトランザクションがデータベースに同期する前に調べることです。それ以外の場合は、問題が表示されていないことを示す状況と、それが表示されない状況に関する詳細情報を提供します。 – Chris