본문 바로가기
카테고리 없음

[스프링 JPA] 섹션7,8

by haeyoon 2024. 10. 23.

https://velog.io/@haeyoon12/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%84%B9%EC%85%9878

 

[스프링 JPA] 섹션7,8

비즈니스 로직(도메인 로직)이란?컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 부분을 일컫는다. 특히 데이터베이스, 표시장치 등 프로그램의 다른 부분과

velog.io

 

섹션7. 주문 도메인 개발

  • 주문 엔티티, 리포지토리, 서비스, 테스트, 검색 기능 개발

섹션8. 웹 계층 개발

  • 회원 등록, 목록 / 상품 등록, 목록, 수정, 주문, 취소

 

처음에 노션에 정리했는데 형식이 깨지는 관계로 vlog에 정리했습니다

 


퀴즈 & 질의 응답

1. updateItem 메서드에서 id 를 받아오는 방식의 차이

  • 폼에 있는 아이디를 그대로 받아서 쓰면 안되는가 ?
  • Hidden 이 있는 옵션에는 같은 동작으로 작동
  • @PostMapping 은 url 값을 반환함 아이템으로 전달
  • Formget 은 아이템을 참조해서 필드에 아이디값을 반환
  • 수정이 필요없으니까 (hidden 을 사용 ) 

 

2. @ Valid, BindingResult

3. @ModelAttribute("form") , BookForm form 에서 form 2 개의 차이

  • bookForm 은 변수이고 updateItem 에 쓰는 건 bookForm, 변수명이 바뀌어도 상관없음
  • 인자로 넘기는 거 view 에 넘긴 건 ItemList.html 에 도달함. View 에 넘기는 역할 차이를 가지고 있음
  • GetMapping 에서 받아온 것 updateItemForm 을 리턴함

updateItemForm 에 bookForm 에 바인딩이 됨.  마찬가지로 orderSearch & orderController 가 예시

 

4. 두 코드의 차이점?

  • memberId 로 찾아서 전달 . 위아래 memberId 로 찾고 넘기고 밑에 코드처럼 멤버 객체를 만들면 Order 에서는 비영속엔티티가 됨 . ( 쌩 객체 )
  • 첫번째 : 아이템을 넘기면 아이디로 엔티티조회를 처리하고 지연로딩이 되며 아래는 바로 조회하면 영속성 컨트롤러에 엔티티가 포함될 수 있음 . 하지만 관리밖에 있으 므로 영속성이 보장되지 않을 수 있음
  • 두번째는 트랜재션과 영속성을 처리하지 못할 수 있으므로 권장하지 않음
  • 지금은 어노테이션이 있기에 보장이 되지만 없으면 영속성이 보장되지 않음