강의

멘토링

커뮤니티

Inflearn Community Q&A

dktmvktm8438's profile image
dktmvktm8438

asked

Spring MVC Part 2 - Backend Web Development Utilization Technology

Bean Validation - Apply to Modification

수정하면 검증 로직이 작동을 안해요

Written on

·

354

0

상품 등록시에는 널일 경우 널 에러가 발생하는데 상품 수정시에는 널이어도 에러가 발생하지 않습니다

 

도메인에  bean validation 설정 컨트롤러 함수에 @Validated 설정 한뒤

 

수정폼에서 상품 이름 null 로 해도 그대로 업데이트가 됩니다

 

이유가 무엇일까요?

 

github:

https://github.com/hyunsokstar/study-spring-mvc

https://github.com/hyunsokstar/study-spring-mvc/blob/main/validation3-start/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java

 

그리고 jpa 강의에서는 빈에 검증로직 안하는게 맞다고 하시지 않았나요? jpa 쓸때도 빈에 검증 로직 등록해도 상관 없나요?

 

 

springMVC

Answer 1

0

yh님의 프로필 이미지
yh
Instructor

안녕하세요. dktmvktm님

@Validated 위치가 잘못되었습니다. 다음을 참고해서 수정해주세요.

[기존 코드]

@PostMapping("/{itemId}/edit")
public String edit(@Validated @PathVariable Long itemId, @ModelAttribute Item item, BindingResult bindingResult, Model mode) {

 

[변경 코드]

@PostMapping("/{itemId}/edit")
public String edit(@PathVariable Long itemId, @Validated @ModelAttribute Item item, BindingResult bindingResult, Model mode) {

 

Q: jpa 강의에서는 빈에 검증로직 안하는게 맞다고 하시지 않았나요? jpa 쓸때도 빈에 검증 로직 등록해도 상관 없나요?

-> 이 경우 강의 예제여서 단순화 한 것이고, 실제로는 폼 데이터를 통해서 검증하고, 엔티티에는 이런 검증 로직을 빼는 것이 좋습니다. 강의에서 이후에 이 부분도 설명드립니다^^

추가로 강의 소스코드는 git을 private으로 사용해주세요^^

감사합니다.

dktmvktm8438's profile image
dktmvktm8438

asked

Ask a question