목록분류 전체보기 (431)
mojo's Blog

주문, 주문상품 엔티티 개발 구현 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 순서 주문 엔티티, 주문 상품 엔티티 개발 주문 리포지토리 개발 주문 서비스 개발 주문 검색 기능 개발 주문 기능 테스트 Order 와 OrderItem 의 관계는 다음과 같다. Order 클래스 @Entity @Table(name = "orders") @Getter @Setter public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappe..

데이터베이스의 기본 데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터 모음이다. 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS 라고 하며, 데이터베이스 안에 있는 데이터들을 특정 DBMS 마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 데이터베이스 위에 DBMS, DBMS 위에 응용 프로그램이 있으며 이러한 구조로 데이터를 주고 받는다. DBMS 는 예로 MySQL 이 있으며 응용 프로그램에 속하는 Node.js, php 에서 해당 데이터베이스 안에 있는 데이터를 가져와서 해당 데이터 관련 로직을 구축할 수 있다. ※ 엔티티 엔티티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. 예를 들어 회원은 이름, 아이디..
상품 엔티티 개발(비즈니스 로직 추가) 구현 기능 - 상품 등록 - 상품 목록 조회 - 상품 수정 구현 순서 상품 엔티티를 개발(비즈니스 로직 추가) 상품 리포지토리를 개발 상품 서비스를 개발 상품 기능을 테스트 @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "dtype") @Getter public abstract class Item { ... /** * stock 증가 */ public void addStock(int quantity) { this.stockQuantity += quantity; } /** * stock 감소 */ public void removeStock(int quan..

회원 리포지토리 개발 구현 기능 - 회원 등록 - 회원 목록 조회 순서 - 회원 리포지토리 개발 - 회원 서비스 개발 - 회원 기능 테스트 @Repository public class MemberRepository { @PersistenceContext private EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); }..

구현 요구사항 ※ 구현해야 할 기능 회원 기능 - 회원 등록 - 회원 조회 상품 기능 - 상품 수정 - 상품 등록 - 상품 조회 주문 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 예제를 단순화 하기 위해 다음 기능은 구현하지 않음 - 로그인과 권한을 관리하지 않음 - 파라미터 검증과 예외 처리 단순화 - 상품은 도서만 사용함 - 카테고리는 사용하지 않음 - 배송 정보는 사용하지 않음 애플리케이션 아키텍처 계층형 구조를 사용 - controller, web : 웹 계층 - service : 비즈니스 로직, 트랜잭션을 처리 - repository : JPA 를 직접 사용하는 계층, 엔티티 메니저를 사용 - domain : 엔티티가 모여 있는 계층으로 모든 계층에서 사용 ※ 패키지 구조 jpabook..

소개 ※ JPA 는 다양항 쿼리 방법을 지원한다. - JPQL - JPA Criteria - QueryDSL - 네이티브 SQL - JDBC API 를 직접 사용, MyBatis, SpringJdbcTemplate 를 함께 사용 ※ JPQL 가장 단순한 조회 방법 - EntityManager.find() - 객체 그래프 탐색 (ex : a.getB().getC()) 만약 나이가 18살 이상인 회원을 모두 검색하고 싶은 경우? 결국 문제는 검색 쿼리이다. 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색해야 한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능하다. 애플리케이션이 필요한 데이터만 DB 에서 불러오려면 결국 검색 조건이 포함된 SQL 이 필요하다. 따라서, JPA 는 SQ..