2012-07-24 3 views
0

Java 영속 & hibernate 엔티티에 속성 수준 제약 조건을 쉽게 추가 할 수 있도록합니다.@Future의 구현은 어디에 정의되어 있습니까?

@Entity 
@Table(name = "party") 
public class PartyEntity { 
    @Future 
    public DateTime start; 
} 

javax.validation.constraint.Future 주석은 특정 구현없이 정의됩니다.

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER }) 
@Retention(RUNTIME) 
@Documented 
@Constraint(validatedBy = {}) 
public @interface Future { 
    // ... 
} 

실제 유효성 검사가 구현되는 곳은 어디입니까? 관리자 권한을 부여하기 위해 어떻게 확장 할 수 있습니까?

여기에 나와 있지 않지만이 제약 조건의 다른 목적으로 이미 그룹을 사용하고 있습니다. hibernate-validator에서 제공하는 많은 검증을위한

+0

이것은 주석 일 뿐이며이를위한 "구현"을 찾을 수 없습니다. 유효성 검사 로직의 구현을 언급했다면, 나는 이것이 유효성 검사 라이브러리 (JSR 303 구현)에 있다고 생각한다. 나는 그것이 최대 절전 모드 검증이라고 확신한다. 나는 당신이 조사를 시작할 수있는 출발점이라고 생각합니다. –

답변

2

구현 : http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-usingvalidator.html#validator-defineconstraints-builtin

방금 ​​pom.xml 파일에 다음과 같은 종속성을 추가 메이븐을 사용하는 경우

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-validator</artifactId> 
    <version>5.0.0.Alpha1</version> 
</dependency> 

어떻게이는 관리자가 오버라이드 (override) 할 수 있도록 확장 할 수 있는가?

가장 간단한 방법은 write your own instead입니다.

+0

경고로서 5.0.0.Alpha1은 Bean Validation 1.1의 첫 번째 공개 프리뷰 버전에 따라 알파 릴리스입니다. Hibernate Validator 4.x는 현재 공식적인 Bean Validation 1.0 버전과 일치한다. – Hardy

0

JSR 303 유효성 검사는 JPA와 직접 관련이 없습니다. 물론 JPA 엔티티도 함께 유효성을 검사 할 수 있습니다. 실제 질문에 대해서는 PHP 코더의 조언을 따르고 주석 사용을 통해 설정 한 제한 조건에 대한 새로운 주석과 유효성 검사를 구현하고자 할 가능성이 큽니다.

일부 신비한 이유 때문에 구현에서 미래 주석을 처리하는 방법을 변경해야하는 경우 솔루션은 물론 구현에 따라 다릅니다. 이러한 구현은 org.hibernate.validator.internal.metadata.core.ConstraintHelper에 영향을받을 수 있습니다 발탁 어떻게

: 당신이 최대 절전 모드 검사기 4.3을 사용한다고 가정하면, 검증 제약의 실제 검사에서 일어난다. IDE에 사용하는 구현 소스를 첨부하는 것이 좋습니다. 이렇게하면 이러한 종류의 세부 정보로 쉽게 이동할 수 있기 때문입니다.

관련 문제