テーブルから Date を long (ミリ秒) で返す必要があります。アクセスする必要がある列は oracle db にあり、Timestamp タイプ (名前は ROW_TMSTP) です。
私がやったことは次のとおりです。
@Column(name = "ROW_TMSTP")
@Override
@Temporal(TemporalType.TIMESTAMP)
public Date getEntityTimeStamp() {
return entityTS;
}
@Transient
public Long getVersion() {
return entityTS.getTime();
}
それはうまくいきます..時々。バージョンが x より大きいレコードを選択したい場合は機能しません。
タイムスタンプを long としてうまく機能させるエンティティ クラスを作成するにはどうすればよいですか?
そして、データベース構造を変更するように私を説得しようとしないでください..私はそこにあるものに固執しなければならず、getVersion によってフィールドを返さなければなりません。
ありがとう!
編集
getVersion にマッピングがないため、select クエリで無効な識別子が生成されました。適切なマッピングを削除@Transient
して追加すると、問題が解決しました。
@Column(name="ROW_TMSTP", updatable=false, insertable=false)
public Long getVersion() {
return entityTS.getTime();
}
1 つは少しトリッキーでしたが、これまでの長い期間を比較すると... しかし、それは私の問題ではありません。