[SPRING] 스프링 레스트 컨트롤러 : 유효성을 선택적으로 끄는 방법
SPRING스프링 레스트 컨트롤러 : 유효성을 선택적으로 끄는 방법
내 컨트롤러에는 엔티티를 만드는 방법이 있습니다.
import javax.validation.Valid;
...
@RestController
public class Controller {
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<?> create(@Valid @RequestBody RequestDTO requestDTO) {
...
와
import org.hibernate.validator.constraints.NotEmpty;
...
public class RequestDTO
@NotEmpty // (1)
private String field1;
//other fields, getters and setters.
컨트롤러 메서드를 추가하고 싶습니다.
update(@Valid @RequestBody RequestDTO requestDTO)
그러나이 방법에서는 field1이 비어 있거나 널 (NULL)이 될 수 있어야합니다. 즉, 행
@NotEmpty // (1)
RequestDTO의 내용은 무시되어야합니다.
어떻게해야합니까? RequestDTO와 똑같아 보이지만 어노테이션이없는 클래스를 작성해야합니까? 아니면 상속을 통해 어떻게 든 가능합니까?
해결법
-
==============================
1.짧은 대답 : 유효성 검사 그룹 사용 :
짧은 대답 : 유효성 검사 그룹 사용 :
@NotEmpty(groups = SomeCriteria.class) private String field1;
그리고 메소드 핸들러 매개 변수에서 원하는 그룹을 참조하십시오.
public ResponseEntity<?> create(@Validated(SomeCriteria.class) @RequestBody RequestDTO requestDTO)
위의 예에서 SomeCriteria 그룹의 유효성이 적용되고 다른 그룹은 무시됩니다. 일반적으로 이러한 유효성 검사 그룹은 빈 인터페이스로 정의됩니다.
public interface SomeCriteria {}
Hibernate Validator 문서에서이 그룹 제약들에 대한 더 많은 것을 읽을 수있다.
from https://stackoverflow.com/questions/35704351/spring-rest-controller-how-to-selectively-switch-off-validation by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터의 페이지 매김 JPA (한계 및 오프셋) (0) | 2019.02.23 |
---|---|
[SPRING] 찾을 수없는 'org.hibernate.SessionFactory'유형의 bean이 필요합니다. (0) | 2019.02.23 |
[SPRING] access_token : spring boot Oauth2로 리소스에 액세스 할 수 없습니다. (0) | 2019.02.23 |
[SPRING] 하나의 Service 메소드는 Spring 트랜잭션을위한 내부 다중 메소드를 호출한다. (0) | 2019.02.23 |
[SPRING] Spring 컨텍스트에서 Maven settings.xml 속성 사용하기 (0) | 2019.02.23 |