私は作成された日付と変更された日付の列を持つ1つのJPAエンティティを持っています。作成/保存時に、作成された日付と変更された日付は、データベースに指定されたデフォルト値(タイムスタンプ)によって生成されます。しかし、私が更新/マージをしようとすると、データベースのデフォルト値を使って変更日を変更する方法がわかりません。何かアドバイス?これは、現在の設定です:JPA EntityManager - マージを使用してデフォルト値を生成する?
....
@Temporal(TemporalType.DATE)
@Column(name="CREATED_DATE", insertable = false, updatable = false)
private Date createdDate;
@Temporal(TemporalType.DATE)
@Column(name="MODIFIED_DATE", insertable = false)
private Date modifiedDate;
....
-
public Database changeDate(Database oldValues)
Database newvalues = new Database();
....
newValues.setCreatedDate(oldValues.getCreatedDate);
//newValues.setModifiedDate(); <-- (Should use the default value in the database)
....
em.merge(newValues); <-- (EntityManager)
em.getTransaction().commit();
**は、念のために、私は自分自身を明確にしていない、私はちょうどそれがデフォルト値のセットで更新させる方法がわかりませんデータベースに格納されます。
これを少し明確にするため、「newValues.modifiedDateを新しいDate()値に更新しようとしていますが、トランザクションコミット後にDBに更新が表示されません」または「newValuesを更新しようとしています.modifiedDateをnull値に設定していますが、例外が発生しています。 –
私はそれをデータベースに保存したデフォルト値に更新しようとしたかったのです。それをnullに設定することは役に立たなかった。私は新しいDate()ルートを行うかもしれませんが、私はまだデフォルト値を好むでしょう。 –
あなたの質問を編集し、 "null"を削除することをお勧めします。あなたがしようとしていることを正確に説明するためにあなたの質問に言い直すなら、私たちが手助けするほうがずっと簡単です。 –