>  기사  >  Hibernate Validator에 메시지를 삽입할 때 인스턴스 변수에 어떻게 접근하나요?

Hibernate Validator에 메시지를 삽입할 때 인스턴스 변수에 어떻게 접근하나요?

WBOY
WBOY앞으로
2024-02-14 13:42:09698검색

Hibernate Validator에서는 검증 메시지를 맞춤 설정해야 하는 경우가 많습니다. 때로는 메시지를 동적으로 생성하기 위해 인스턴스 변수에 액세스해야 하는 경우도 있습니다. 그렇다면 Hibernate Validator에서 인스턴스 변수에 접근하는 방법은 무엇일까요? 먼저, 인스턴스 변수를 참조하기 위해 유효성 검사 주석에 자리 표시자를 사용해야 합니다. 그런 다음 메시지 리소스 파일에서 "{}"를 사용하여 인스턴스 변수의 값을 가져올 수 있습니다. 이런 방식으로 인스턴스 변수의 값을 유연하게 삽입하여 개인화된 유효성 검사 메시지를 생성할 수 있습니다. 이 기사에서는 PHP 편집자 Yuzai가 Hibernate Validator에 메시지를 삽입할 때 인스턴스 변수에 액세스하는 방법을 자세히 소개합니다.

질문 내용

crudrepository::save을 사용하여 저장소에 개체를 삽입할 때 최대 절전 모드 유효성 검사기와 스프링을 사용하여 개체의 유효성을 검사합니다. 수업이 있다고 가정해보세요:

으아아아

보간된 메시지가 id 필드와 같은 person 인스턴스의 모든 필드에 액세스한 다음 "${id}" 또는 "${this.id}"와 같이 해당 필드에 액세스할 수 있기를 원합니다. 문서에는 모든 Bean 속성에 액세스할 수 있는 방법이 언급되어 있지만 클래스 수준 제약 조건에서만 작동하는 것 같습니다.

클래스 수준 제약에 얽매이지 않고 이를 수행할 수 있는 방법이 있나요?

해결 방법

제약 조건 유효성 검사기는 필드 자체 외부의 정보에 액세스할 수 없습니다. 즉, 형제 필드에 액세스할 수 있는 방법이 없습니다. 이는 제약 조건의 범위와 관련이 있습니다. 이렇게 보세요:

으아아아

비어 있지 않은 name 可以是个人字段,也可以是公司或其他类中的字段。它与 @notblank의 위치에는 차이가 없습니다.

질문에서 제안한 것처럼 메시지 삽입 시 다른 클래스 필드에 액세스하려면 제약 조건이 클래스 수준에 있어야 합니다... 수많은 사용자 지정 제약 조건을 만들지 않으려면 @scriptassert을 확인해 보세요.

또한 constraintviolationexception 包含 constraintviolation 列表,从中您应该能够访问叶 bean (getleafbean()) 或根 bean (getrootbean()) 예외를 던진 후 필요한 정보를 얻으십시오.

위 내용은 Hibernate Validator에 메시지를 삽입할 때 인스턴스 변수에 어떻게 접근하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제