JPA 활용 - 엔티티 매핑 대신 DTO를 사용하는 이유
·
Back-End/JPA
엔티티를 Request Body에 직접 매핑하는 경우 import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @RestContro..
JPA 활용 - 상품 주문, 주문 목록 검색과 취소 만들기
·
Back-End/JPA
이전글 2023.03.01 - [Back-End/JPA] - JPA 활용 - 변경 감지와 병합 JPA 활용 - 변경 감지와 병합 이전글 2023.02.28 - [Back-End/JPA] - JPA 활용 - 홈 화면과 회원등록 화면 계층 생성 scoring.tistory.com 상품 주문 상품 주문 컨트롤러 생성 package jpabook.jpashop.controller; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.service.ItemService; import jpabook.jpashop.service.MemberService; import jpabook.jpa..
JPA 활용 - 변경 감지와 병합
·
Back-End/JPA
이전글 2023.02.28 - [Back-End/JPA] - JPA 활용 - 홈 화면과 회원등록 화면 계층 생성
JPA 활용 - 홈 화면과 회원등록 화면 계층 생성
·
Back-End/JPA
이전 글 2023.02.27 - [Back-End/JPA] - JPA활용 - 주문 검색 기능 개발(동적쿼리 사용) hr { margin: 30px 0; } /* Main marketing message and sign up button */ .jumbotron { text-align: center; border-bottom: 1px solid #e5e5e5; } .jumbotron .btn { font-size: 21px; padding: 14px 24px; } /* Supporting marketing content */ .marketing { margin: 40px 0; } .marketing p + h4 { margin-top: 28px; } /* Responsive: Portrait tablets..
JPA 활용 - 주문 기능 테스트
·
Back-End/JPA
이전글 2023.02.24 - [Back-End/JPA] - JPA 활용 - 주문 도메인 개발 JPA 활용 - 주문 도메인 개발 이전글 2023.02.23 - [Back-End/JPA] - JPA 활용 - 상품 도메인 개발 주문 도메인 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 순서 주문 엔티티, 주문상품 엔티티 개발 주문 리포지토리 개발 주문 scoring.tistory.com 💡 이 글의 테스트 코드는 JUnit5로 작성되었습니다. (인프런 강의는 JUnit4) 주문 기능 테스트 테스트 요구사항 상품 주문이 성공해야 한다. 상품을 주문할 때 재고 수량을 초과하면 안 된다. 주문 취소가 성공해야 한다. 상품 주문 테스트 @SpringBootTest @Transactional class Ord..
JPA 활용 - 주문 도메인 개발
·
Back-End/JPA
이전글 2023.02.23 - [Back-End/JPA] - JPA 활용 - 상품 도메인 개발 주문 도메인 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 순서 주문 엔티티, 주문상품 엔티티 개발 주문 리포지토리 개발 주문 서비스 개발 주문 검색 기능 개발 주문 기능 테스트 주문, 주문상품 엔티티 개발 주문 엔티티 코드 package jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "order..
JPA 활용 - 상품 도메인 개발
·
Back-End/JPA
이전글 2023.02.21 - [Back-End/JPA] - JPA 활용 - 회원 도메인 개발 및 테스트코드 작성 JPA 활용 - 회원 도메인 개발 및 테스트코드 작성 회원 도메인 개발하기 개발 순서 : 엔티티 설계 → 리포지토리, 서비스 개발 → 테스트 케이스 작성 및 검증 → 웹 계층 적용 앞에서는 엔티티 작성을 마쳤고, 이를 통해 애플리케이션 구현을 위 scoring.tistory.com 상품 도메인 개발 구현 기능 상품 등록 상품 목록 조회 상품 수정 순서 상품 엔티티 개발(비즈니스 로직 추가) 상품 리포지토리 개발 상품 서비스 개발 상품 기능 테스트 상품 엔티티 개발 기존의 상품 엔티티 코드에 비즈니스 로직을 추가한다. package jpabook.jpashop.domain.item; impor..
JPA 활용 - 회원 도메인 개발 및 테스트코드 작성
·
Back-End/JPA
회원 도메인 개발하기 개발 순서 : 엔티티 설계 → 리포지토리, 서비스 개발 → 테스트 케이스 작성 및 검증 → 웹 계층 적용 앞에서는 엔티티 작성을 마쳤고, 이를 통해 애플리케이션 구현을 위한 리포지토리와, 서비스를 작성할 것이다. 이번 애플리케이션 구조는 계층형 구조를 사용한다. controller, web : 웹 계층 service : 비즈니스 로직, 트랜잭션 처리 repository : JPA를 직접 사용하는 계층, 엔티티 매니저 사용 domain : 엔티티가 모여 있는 계층, 모든 계층에서 사용 회원 리포지토리 생성 @Repository public class MemberRepository { @PersistenceContext private EntityManager em; public void..
JPA - 양방향 연관관계와 연관관계의 주인, 양방향 매핑 정리
·
Back-End/JPA
이 글은 이전글인 JPA - 연관관계 매핑(조인 방법), 단방향 연관 관계 및 매핑 과 이어집니다. JPA - 연관관계 매핑(조인 방법), 단방향 연관 관계 및 매핑 JPA에서의 연관관계를 알아볼때 목표 객체지향적인 패러다임과 관계형 DB가 지향하는 패러다임의 차이를 이해해야 한다. 객체의 참조와 테이블의 외래 키를 매핑 용어 방향(Direction) : 단방향, 양 scoring.tistory.com 양방향 매핑 방법 Member와 Team 테이블의 연관 관계로 설명 Member.java @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME")..
JPA - 연관관계 매핑(조인 방법), 단방향 연관 관계 및 매핑
·
Back-End/JPA
JPA에서의 연관관계를 알아볼때 목표 객체지향적인 패러다임과 관계형 DB가 지향하는 패러다임의 차이를 이해해야 한다. 객체의 참조와 테이블의 외래 키를 매핑 용어 방향(Direction) : 단방향, 양방향 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요하다. 객체와 테이블 연관관계 사이의 차이 테이블의 경우 select * from member m join team t on m.team_id = 1 두개의 테이블을 조인하는 경우에는 join 쿼리문 하나로 간단하게 할 수 있다. 객체의 경우 Team team = new Team(); team.setName("TeamA"); ..