2013-05-23 1 views
1

나는 Bean Validation 1.1 introduces support for validating arbitrary methods을 알고 있습니다.임의의 메서드 반환 형식에 제약 조건을두면 Bean 유효성 검사 1.0이 위반됩니까?

그러나 말,의 추가 것, 콩 검증 1.0의 원인 문제 (예 : @NotNull public Frobnicator frobnicate(), 말 등) 임의의 방법에 @NotNull 제약? 아니면 이러한 메타 데이터 - 나는 희망한다! - 단순하게 Bean Validation 1.0 검사기에 의해 무시 될 수 있는가?

(물론 이것을 Hibernate Validator를 사용하여 테스트 할 수는 있지만,이 특정 구현은이 상태를 존중하거나하지 않는다는 것을 알려주며, 스펙 작성자의 의도가 무엇인지 알려주지 않습니다. Bean Validation 1.0의 임의의 메소드에 대한 검증 제약 조건의 배치).

답변

1

Hibernate Validator 4.x (BV 1.0의 레퍼런스 구현)는 메서드 유효성 검사를 위해 own API을 제공하므로 메서드 제약 조건이 잠재적으로 유효성을 검사받을 수 있습니다.

그러나 제약 조건을 메서드에 추가하는 것만으로 해당 유효성 검사가 발생하지 않고 대신 메서드 유효성 검사시 유효성 검사 엔진을 호출하기 위해 메서드 인터셉터, AOP 조언 등이 필요합니다. 그래서 나는 BV 1.0에서 예기치 않은 부작용을 보지 않을 것이라고 생각합니다.

나는 방법 밸리데이션을위한 기능을 가지고있는 아파치 BVAL도 마찬가지라고 생각한다.

+0

감사합니다. JPA 환경에서 유효성 검사에 주로 관심이 있다고 언급 했어야합니다. 오버로드 된 get-type 메서드의 반환 유형에'@ NotNull '을 단순히 두는 것으로 화상을 입었습니다 (하나의 getter는 매개 변수를 사용하지 않았고 다른 동일하게 명명 된 매개 변수는 하나의 매개 변수를 가졌으므로 둘 모두에 @NotNull을 넣을 수 없습니다)). 나는이 사건을 알고 있지만 다른 사람들을 찾고 있었다. 당신의 대답에 다시 한번 감사드립니다. –

0

실제로, 검증 1.0에서는 동작이 지정되어 있지 않기 때문에, 모든 구현이 동일하게 기능하는 것을 알 수있는 방법은 없습니다.