2012-08-07 1 views
1

일반 질문 :데이터베이스 연결을 사용하는 JSR303 유효성 검사

이것은 JSR303 bean 유효성 검사, 최대 절전 참조 구현을 사용하고 있습니다.

사용자 지정 유효성 검사 집합이 있다고 가정합니다. 그들 중 일부는 데이터베이스 연결을 요구한다. (참고 : 우리는 DB 요소 매핑을 위해 Hibernate를 사용하지 않으므로 불행히도 이것은 옵션이 아니다.) 예를 들어, 지속성을 유지하기 전에 foriegn 키의 유효성을 검사 할 수 있습니다.

어쨌든 DB 연결을 Validator.validate (obj) 메서드에 전달하여 유효성 검사 구현에 사용할 수있는 방법이 보이지 않습니다. 이 연결은 세션 일관성을 위해 호출 코드에서 사용되는 것과 동일한 연결이어야합니다.

어떤 아이디어 ..? 필자가 정말로 필요로하는 것은 모든 종류의 런타임 값을 유효성 검사기 구현으로 가져 오는 방법입니다.

감사합니다,

앤디

답변

1

당신은 인스턴스화 ConstraintValidator 개체를 구성 할 수있는 사용자 정의 ConstraintValidatorFactory를 만들 수 있습니다. 이 팩토리는 데이터베이스 연결과 같이 필요한 종속성을 작성된 제한 조건 유효성 검증기에 전달할 수 있습니다.

응용 프로그램 배선에 CDI를 사용하는 경우 Seam Validation (면책 조항 : 저자입니다.)은 CDI 기반의 유효성 검사기에 대한 종속성 주입을 제공합니다. Spring Framework를 사용하고 있다면 제약 조건 유효성 검사 구현 내에서 종속 삽입의 make use을 사용할 수도 있습니다.