Oracleでデータベースを作成したとします。ORACLEですでに作成されているが、Hibernateエンティティで作成された "CREATE UNIQUE INDEX"のマッピング方法
CREATE UNIQUE INDEX "SOME_NAME" ON "SOME_TABLE_NAME" (COLUMN1,COLUMN2)
私は休止状態エンティティは、その認識していることを確認するには:私のテーブルの一つは、次の文があります。
@UniqueConstraint
のように見えます。注釈は、テーブルの生成が有効な場合にのみ使用されるため、ここでは使用できません。- また、
CREATE UNIQUE INDEX "SOME_NAME" ON "SOME_TABLE_NAME" (COLUMN1,COLUMN2)
が私のH2データベースで動作していないことに気付きました。
エンティティがその制限を認識していることを確認する方法はありますか?
あなたのエンティティは、それを認識できません。ただし、データベースに書き込む前に条件をチェックする何らかの形式の検証を追加できます。カスタムJSR303の検証などがあります。例を見てください:http://stackoverflow.com/questions/17092601/how-to-validate-unique-username-in-spring –
@ AlanHayそれでは、Oracleだけで制約を追加するだけでは不十分かどうか疑問に思っています。したがって、DBからエンティティに引き出されている値はすでに検証されています。彼らじゃない? – Columb1a
ユーザが入力したデータを保存していて、英国が違反した場合、スタックトレースは何がうまくいかなかったのかを識別して意味のあるエラーメッセージを表示するのに役立ちません。これは、Javaの検証が有用な場合です。 –