2012-02-20 10 views
1

これはPlay-gurusにとっては納得のいくものではないと確信していますが、私は見つけられません。複数のフィールドの検証を再生

私は、全体と貨幣価値の小数部を表す2つのフィールドを持つクラスがあります。

@Required 
@Min(0) 
private Integer whole; 

@Range(min = 0, max = 99) 
private Integer decimal; 

を、私は、全体と小数部の両方が0

ある値を許可しません

注釈を使用してこれを指定できますか?もしそうでなければ、私は私の検証コードにフックしますか?

答えて

1

まあ、私は何の第一人者だんが、私はあなたがカスタムチェックを定義することによって、あなたが望むものを達成することができると思う:

@CheckWith(WholeCheck.class) 
private Integer whole; 

@CheckWith(DecCheck.class) 
private Integer decimal; 

    static class WholeCheck extends Check { 
     public boolean isSatisfied(Object obj, Object whole) { 
      boolean satisfied = true; 
      MyObj myobj = (MyObj) obj; 
      if(((Integer)whole) == 0 && myobj.decimal ==0){ 
       satisfied = false; 
       setMessage("whole and decimal cannot be 0"); 
      } 

      return satisfied; 
     } 
    }