JPAタイムスタンプカラムをデータベースが生成するように設定する?
2023-09-19 14:01:33
質問
SQL Server 2000 データベースに、タイムスタンプ (データ型ではなく関数) 型のカラムがあります。
DATETIME
という名前の
lastTouched
に設定されている
getdate()
をデフォルト値/バインディングとして設定します。
私はNetbeans 6.5で生成されたJPAエンティティクラスを使用しており、私のコードに次のようなものがあります。
@Basic(optional = false)
@Column(name = "LastTouched")
@Temporal(TemporalType.TIMESTAMP)
private Date lastTouched;
しかし、このオブジェクトをデータベースに入れようとすると、次のようになります。
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.generic.Stuff.lastTouched
を設定してみましたが
@Basic
を
(optional = true)
に変更する必要がありますが、これはデータベースが
null
の値は
TIMESTAMP
カラムの値として使用することができますが、これは設計上そうなっていません。
ERROR JDBCExceptionReporter - Cannot insert the value NULL into column 'LastTouched', table 'DatabaseName.dbo.Stuff'; column does not allow nulls. INSERT fails.
以前は純粋なHibernateでこれを動作させることができましたが、その後JPAに切り替えたため、このカラムがデータベース側で生成されることになっていることをどのように伝えればよいのかわからなくなってしまいました。なお、JPAの永続化レイヤーとしてHibernateを使用しています。
どのように解決するのですか?
この問題を解決するために、コードを
@Basic(optional = false)
@Column(name = "LastTouched", insertable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date lastTouched;
つまり、SQLインサートを生成する際に、タイムスタンプカラムは無視されます。これがベストな方法かどうかは分かりませんが。フィードバックは歓迎します。
関連
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
java 365*1000*60*60*24 計算問題
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] Git で古いコミットのタイムスタンプを変更するにはどうしたらいいですか?
-
[解決済み] C#でunixのタイムスタンプを取得する方法
-
[解決済み】JPAのカラムにデフォルト値を設定する
-
[解決済み] Hibernate JPA シーケンス(非Id)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Javaジェネリックを1つの記事で
-
FindBugの使用概要
-
java send https request prompt java.security.cert.について。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
Zipファイルの圧縮・解凍にantを使用する