2010-12-10 10 views
0

私は何かを見落としているのだろうか、または2つのフィールドが等しい(パスワードなどの)ことを確認するための注釈を提供しませんか? 私は自分のバリデータを書くことができますが、よくこれは標準的な機能のようです。hibernateバリデーター:2フィールドの一致を確認する

+0

実装例:「そこwasnのでhttp://git.springsource.org/greenhouse/greenhouse/trees/master/src/main/java/com/springsource/greenhouse/validation – axtavt

答えて

0

ちょうどカスタムバリデータールートに行きました。他の2つの答えは本当に質問に関連していません。 グーグルで私はフィールドマッチの例を見つけました。

-2

確認パスワードをデータベースに保存しないことをお勧めします。このためのチェックボックスはありませんが、カスタムアノテーションを使用する必要があります。これはかなり単純です。

+0

は私が休止タグを使用しましたtはhibernate-validatorタグであり、まだ新しいものを作成することはできません。もちろん私は確認フィールドを守っていません。 – jack

-1

HibernateはORM Mapperです。

これは、データをDBに保存して再度抽出するために使用されます。したがって、同じ値を持つ2つのフィールドを持つことはあまり意味がありません(永続的な観点から)。それはビジネスロジックをチェックするべきことです。

そして、私はJuneshと一緒にいます...あなたのパスワードを検索可能なフォーマットで保持していません... HasingとSaltingを探してください - あるいはもっとよく、openIDについて考えると、あなたのクライアントには別の愚かなパスワードを気にする必要はありません。 ..

+0

私はhibernateタグを使用しました。なぜなら、hibernate-validatorタグがなく、まだ新しいタグを作成できないからです。もちろん私は確認フィールドを守っていません。 – jack

3

あなたは春のフレームワークを使用している場合、あなたはそのために春の式言語(SPEL)を使用することができます。私は、クロスフィールド検証を非常に簡単にするSpELに基づいたJSR-303バリデーターを提供する小さなライブラリを書いています。 https://github.com/jirutka/validator-springをご覧ください。

パスワードフィールドのうち、少なくとも1つが空でない場合、パスワードフィールドの一致を検証します。

@SpELAssert(value = "password.equals(passwordVerify)", 
      applyIf = "password || passwordVerify", 
      message = "{validator.passwords_not_same}") 
public class User { 

    private String password; 
    private String passwordVerify; 
} 
関連する問題