6

Play에서 내 객체의 유효성 검사에 Constraint 주석을 사용하고 있습니다! 프레임 워크 2. 최상위 수준의 개체는 작동하지만 중첩 된 개체는 정상적으로 작동하지 않습니다. 중첩 된 객체 유효성 검사 주석을 작동 시키려면 어떻게합니까?Play Framework 2의 중첩 된 객체에서 유효성 검사가 작동하지 않습니다.

이벤트 : 저장중인 최상위 개체입니다.

@Entity 
public class Event { 

    @Required 
    public String name; 

    @OneToMany(cascade = CascadeType.ALL) 
    public List<Option> options; 

    ... 
} 

옵션 : 중첩 된 객체입니다. 그 이름 속성의 유효성을 검사하지 않습니다.

@Entity 
public class Option { 

    @Required 
    public String name; 

    ... 
} 

답변

14
플레이에 익숙하지

, 그러나 당신이 그 관계에 내려 발리에게 당신의 options 필드에 @Valid을 둘 필요가 거라고하는 javax.validation, 아주 가까이 보인다. Play는 자체적으로 @Valid을 가지고 있으므로 그만해볼 수 있습니다.

업데이트 : OP가 지적했듯이 위의 내용은 Play 1.0입니다. 대신 Play 2.0 docs 당 Spring 데이터 바인딩과 JSR-303을 사용하므로 javax.validation @Valid 주석을 사용하는 것이 어떻습니까? 아마도 Play 1.0은 자체 제작 한 유효성 검사 프레임 워크를 가지고 있었고 2.0에서 javax.validation으로 이동하기로 결정했을 것입니다. 2.0 API에서 몇 가지 유효성 검사 주석이 사라진 것 같은 이유가 설명됩니다.

+0

저는 그것이 플레이 1의 주석이 아닌 2라고 생각합니다. – Brian

+0

죄송합니다. 내 대답이 업데이트되었습니다. 시도 해봐. –

관련 문제