본문 바로가기
728x90

Back-End/Spring Data14

4.엔티티 매핑 4.엔티티 매핑 목차 1.객체와 테이블 매핑 2.데이터베이스 스키마 자동생성 3.필드와 컬럼 매핑 4.기본키 매핑 1.객체와 테이블 매핑 객체와 테이블 매핑 : @Entity , @Table 필드와 컬럼 매핑 : @Column @ 기본키 매핑 : @Id @ 연관관계 매핑 : @ManyToOne ,@JoinColumn @Entity JPA 가 관리하는 엔티티 기본생성자는 필수 (public , protected) final 클래스 , enum,interface,inner 클래스 사용 x 저장할 필드에 final 사용 x 2.데이터베이스 스키마 자동생성 DDL 을 애플리케이션 실행시점에 자동 생성 테이블 - > 객체 중심 데이터 베이스 방언에따라 적절한 DDL 을 생성 운영서버에서는 생성된 DDL 을 쓰지 .. 2021. 1. 7.
3.영속성관리 - 내부동작방식 3.영속성관뢰 - 내부동작방식 목차 1.영속성 컨텍스트1 2.영속성 컨테스트2 3.플러시 4.준영속상태 5.정리 1.영속성 컨텍스트1 객체와 관계형 데이터베이스 매핑 영속성 컨텍스트 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity) persist 는 DB 에 저장이 아닌 영속성 컨텍스트에 저장한다 논리적인 개념 , 눈에 보이지 않는다 , 엔티티 매니저를 통해서 접근 영속성 컨텍스트 비영속 : 새로운 상태 영속 : 관리하는 상태 준영속 : 분리된 상태 삭제 : 삭제된 상태 비영속성 상태 객체를 생성한 상태 Member member = new Member(); member.setId("memberId"); member.setUsername("회원"); 영속성 .. 2021. 1. 5.
2.JPA 시작하기 2.JPA 시작하기 목차 1.JPA 프로잭트 설정 2.JPA 애플리케이션 개발 1.JPA 프로잭트 설정 xml 설정 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 jpa 와 h2를 설정한다 persistence H2Dialect - h2의 방언 H2Dialect 을 변경하면 오라클 , mysql , mariadb 등등을 사용할수 있다 resources -> META-INF -> persistence.xml 2.JPA 애플리케이션 개발 Member @Entity @Table("Member") public class Member { @Id @Column("id") private Long id; private Strin.. 2021. 1. 4.
1.JPA 소개 1.JPA 소개 목차 1.SQL 중심적인 개발의 문제점 2.JPA 소개 1.SQL 중심적인 개발의 문제점 무한반복 과 지루한 코드 객체 그래프 탐색이 안된다 계층 분할이 쉽지가 않다 데이터 접근 계층을 사용해서 SQL 을 숨겨도 어쩔수 없이 DAO 를 열어서 SQL 이 실행되는지 확인해야한다 엔티티를 신뢰할수 없다 2.JPA 소개 ORM 객체 관계 매핑 객체는 객체대로 설계 , 관계형 DB는 관계형 DB 대로 설계 ORM 프레임워크가 중간에서 매핑 EJB -> 하이버네이트 -> JPA JPA 를 사용해야 되는 이유 SQL 개발 -> 객체중심 개발 생산성 저장 : persist(member) 조회 : find(memberId) 수정 : set("") - 원하는 값을 넣으면 알아서 Update 해준다 삭제 .. 2021. 1. 4.
9.웹 계층 개발 2(주문) 9.웹 계층 개발 2(주문) 목차 1.상품 주문 2.주문목록 검색, 취소 1.상품 주문 OrderController @Controller @RequiredArgsConstructor public class OrderController { private final OrderService orderService; private final MemberService memberService; private final ItemService itemService; @GetMapping("/order") public String createForm(Model model){ List members = memberService.findMembers(); List items = itemService.findItems();.. 2021. 1. 1.
8.변경감지 와 병합 8.변경감지 와 병합 1.준영속 엔티티 1.준영속 엔티티 영속성 컨텍스트가 더이상 관리하지 않는 엔티티 (준영속 상태 객체도 있다) 수정을 시도한 Book 엔티티 객체는 이미 DB에 한번 저장되어서 식별자가 존재 준영속 엔티티 를 수정하는 방법 1.변경감지는 트랜잭션안에서 값이 바뀌면 자동으로 Update 해준다 (더티체킹) 그리나서 커밋해준다 2.Merge 사용하기 1.변경감지 ItemService @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class ItemService { private final ItemRepository itemRepository; @Transactional public void updateI.. 2021. 1. 1.
728x90