2022 09 27 - WIYA-waitinyourarea/wiya GitHub Wiki
2022-09-27 회의록
1. @ModelAttribute의 대상과 검증
@PostMapping("url")
public String 컨트롤러메소드(Member member){
return "...";
}
-
컨트롤러 메소드
에 아규먼트로 Entity 객체를 줘도 바인딩이 되는 이유는?- 위와 같은 경우 Member member 앞에
@ModelAttribute("member)
가 생략된 상태 - 해당 메소드를 사용하는 스프링mvc의 핸들러 어뎁터에서 해당 member 객체에 파라미터명이 일치하면 setXXX()를 해줌
- 위와 같은 경우 Member member 앞에
-
그렇다면 검증처리는 어떻게 해야될까?
- 검증처리는 보통 폼태그에서 넘어온 파라미터나 데이터들이 올바른지 검증하는 것
create
와update
를 하는 폼에서 검증 내용이 다를 수 있고- @ModelAttribute로 바인딩해줘야되는 필드가 달라질 수 있다
- 따라서 각각
create
와update
를 하는DTO
를 따로 만듦 - 그리고 각각에 DTO에 상황에 맞는
Bean Validation
적용
장터
, 게시글
, 병원
저장 시, 연관관계인 이미지
저장 순서
2. - 각각의 이미지 테이블에는 해당되는
장터
,게시글
,병원
의 PK가 FK로 참조된다. - 따라서, 이미지 엔티티 객체를 생성하기 전에,
장터
,게시글
,병원
의 엔티티 객체를 먼저 생성해야한다. - 그 생성된 부모 객체를
persist()하여 영속성 컨텍스트
에 의하여 관리하고 - 그에 해당되는 자식 객체인
이미지
의 객체를 만들면서 그 부모 객체를 필드로 지정해주고, 자식 객체도persist()
하여, 영속성 컨텍스의하여 관리 - 이 과정은
하나의 트랜잭션
안에 있어야함 - commit이 되면 flush되면서 게시판 레코드 생성 → 게시판 이미지 레코드 생성