2017-12-29 28 views
0

Entityクラスには、dateCreatedやdateUpdatedのようなフィールドがあります。これらのフィールドを自動更新するために、@PrePersistのdateCreatedフィールドと@PreUpdateのdateUpdatedフィールドの注釈を付けました。それは私のために働いた。新しいエンティティを作成すると、dateCreatedフィールドは更新されますが、エンティティを更新するときにdateCreatedフィールドがnullになり、dateUpdatedフィールドが更新されます。誰がなぜこれが起こっているのか教えていただけますか?@PrePersistおよび@PreUpdateを使用しているときに、作成時の日付フィールドがnullになる

私は(@PrePersist、@PreUpdate)以下の注釈がその下のメソッドが同期してこれらのフィールドを維持するために前にデータベースの挿入または更新に呼び出される原因にHibernate 4.3.6バージョンとJPA 2.0

+0

あなたはいくつかのコードを示していただけますか? –

答えて

0

を使用しています。私はそれらをBaseEntityに配置し、次にすべてのエンティティでBaseEntityを拡張します。

@PrePersist 
protected void onCreation() 
{ 
    dateCreated = Instant.now(); 
    dateUpdated = Instant.now(); 
} 

@PreUpdate 
protected void onUpdate() 
{ 
    dateUpdated = Instant.now(); 
} 

上記おjava.Instantを使用していることを前提としていますが、java.Dateを使用している場合、あなたは以下を使用することができます。

@PrePersist 
protected void onCreation() 
{ 
    dateCreated = new Date(); 
    dateUpdated = new Date(); 
} 

@PreUpdate 
protected void onUpdate() 
{ 
    dateUpdated = new Date(); 
} 
関連する問題