[Spring Boot] TIL - 9 웹 계층 개발 (실전! 스프링 부트와 JPA 활용1 - 섹션 8 웹 계층 개발)

하이초·2022년 9월 24일

Spring_Boot

목록 보기
9/11
post-thumbnail

1. 회원 등록

🥨 Model

  • @Repository
  • @PersistenceContext: EntityManager 생성 주입
  • @PersistenceUnit: EntityManager Factory를 직접 생성 할 수 있음

🥨 Mapping

  • get, post에 따라 어노테이션이 다르구나!

🥨 Valid

  • 자바 validationr 기능 사용 가능
  • valid 어노테이션 이후에 쉼표 찍고 BindingResult를 사용하면 튕김없이 에러 처리가 가능하다(아래 코드가 실행 됨!)
  • if (result.hasErrors())와 같이 작성하여 에러 처리

🥨 redirect:/

  • 홈으로 재연결 가능

2. 회원 목록 조회

🥨 DTO ? enitity ?

  • 실무에서 요구사항이 많아지면 해당 객체를 그대로 사용할 수 있는 경우가 거의 없다
  • 외부 api로 보내주는 경우에는 entity를 그대로 절대 주면 안된다!!

3. 상품 수정

🥨 @PathVariable

  • id등 mapping 주소가 변동 될 경우 해당 어노테이션을 사용!
  • 지금 눌린 객체의 id를 어떻게 아는 건데..? 누가 보내줬는데?

🥨 @ModelAttribute

🍯 허니팁

  • cmd + shift + U: uppercase로 바꿔줌

4. 변경 감지와 병합(merge)

🥨 준영속 엔티티

  • 영속성 컨텍스트가 더이상 관리하지 않는 엔티티
  • jpa가 관리하지 않음!

🥨 준영속 엔티티 수정 방법

  • 변경감지
  • merge

🥨 merge

  • 준영속 엔티티를 영속 엔티티로 변경
  • 파라미터로 넘어온 친구는 영속 x, 반환된 친구가 영속
  • 파라미터로 넘어온 모든 값이 교체됨 -> null값이 있으면 null 값으로 바뀜
  • so, 매우 위험하다! 따라서 변경 감지를 사용해야 함

5. 상품 주문

🥨 @RequestParam

오늘의 미결사항

  1. java validation 더 알아보기!!!
profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글