2016-04-12 19 views
0

一意の電子メールのカスタム検証アノテーションを作成しました(ユーザーが登録すると、プログラムは電子メールが既にデータベースにあるかどうかをチェックします)。更新時に春の検証を防ぐ方法

すべてがうまく動作しますが、私は、ユーザーの情報を修正するために、新しいものを作成する必要がないとき、私は「メールは既に使用されている」と言う問題に遭遇し

私は何とかのみ@UniqueEmail検証をオフにすることができます(私は電子メールのパターンとパスワードの検証のような他のものが必要です)?

すべての検証アノテーションは、同じユーザーBeanにあります。

ありがとうございます。

+0

は、それをオフに代わり、あなたの検証を修正しないでください。 –

答えて

0

javax.validationを使用していると仮定します。

javax.validation.groups.Default 

public interface OnUpdate extends Default {} 

は今、あなたはUPDATEのみ実行する必要がすべて注釈を設定する必要があります:

まずあなたがinterface OnUpdate必要今

@NotNull(groups = OnUpdate.class) 

を、あなたは分かれているあなた検証は、OnUpdateDefaultの2つのグループに分類されます。 Defaultを実行すると、OnUpdateのものが含まれ、OnUpdateは、Defaultとなります。

これは少し難解です。フレームワークに各タスクで実行する検証を教えてください。 JPAを使用して

た場合は、あなただけの次のプロパティを設定する必要があります。

javax.persistence.validation.group.pre-update = com.my.package.OnUpdate 
+0

Jepに感謝!これは私のために働いた!カップルの異なる方法を修正しようとしましたが、これは最も簡単でよりエレガントです:D – JavaEvgen

関連する問題