にユニーク制約を追加します。どちらもnullではありません。私は2つの記録場所を挿入たとえばは、私は2つのフィールドが含まれているエンティティを持つ2つのNULLでないフィールド
:
organization = 1, ref = 'R1'
organization = 1, ref = 'R1'
これは、制約違反が発生しますが、これまでのところ、私はこのような場合には問題がありません。
そして、私は2つの記録場所を挿入したとき:
organization = null, ref = null
organization = null, ref = null
を。これは、これまでのところ、私はどちらか、この場合には問題がない、制約違反を生成しません。
私が持っている問題は、この場合には次のとおりです。
それとも
organization = null, ref = 'R1'
organization = null, ref = 'R1'
この私はユニークにしたいので、両方のケースは、私はしたくないこれは、制約違反が発生していますorganization
とref
の両方がnullでない場合に有効な制約。どのように私はこの問題を解決することができます
@Table(uniqueConstraints = {
@UniqueConstraint(columnNames = { "organization", "ref" })
})
:
これは私がユニーク制約を宣言した方法です。
PS:私はOracle 12cを使用しています。
編集:
両方のフィールド
organization
とref
はNULL可能です。私は宣言JPA@UniqueConstraintアノテーションは、SQLコードを生成します:。
はUNIQUE INDEX "USERNAMEを" CREATE "UK_TABLENAME_1" "USERNAME" ON "TABLENAME"( "組織"、 "REF")
。
エンティティを変更することはできますか? – pirho
@pirhoはいそれは –
です。両方のフィールドで '@NotNull'と@Unique'の両方の制約を追加しないのはなぜでしょうか。 –