2

フレームワークによって管理される Id を持つユーザー モデルがありますが、電子メール属性も持っています。電子メールを一意にしたいのですが、現在はそれを使用しています

@Email
@Required
@Column(unique=true)
public String email;

これは正常に機能しますが、PersistenceException をスローします。play フレームワークには、これをフォームレベルで処理するための検証がありますか? user.save() の周りの try catch ブロックを避けたい

4

2 に答える 2

1

一意の制約はデータベースのみを参照します。それらがフォーム レベルで定義されている場合、フォームの検証 (「表面チェック」) はオブジェクトを検証するためにデータベースにクエリを実行する必要があります。

例外は、見つけることができる最善の (またはそれほど悪くない) 解決策であると思います。

多くの try / catch ブロックを回避するために、ジョブを実行する「保存」のエントリ ポイントを 1 つにすることができます。

于 2013-03-13T15:53:56.143 に答える