본문 바로가기
728x90
반응형

Dev170

[JPA] 실습 - 연관관계 매핑 시작 이전 실습에 연관관계를 구성해보자. 테이블 및 엔티티 설계 실습 연관관계를 갖는 엔티티 - Member.java @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String name; private String city; private String street; private String zipcode; // 양방향 연관관계 (Member Order) @OneToMany(mappedBy = "member") // 조회만 가능 private List orders = new ArrayList(); // getter, setter } - Order.java @Entity @T.. 2021. 8. 18.
[JPA] 연관관계 매핑 기초 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래키를 매핑 용어 (1) 방향(Direction) : 단방향, 양방향 (2) 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 (3) 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요 연관관계가 필요한 이유 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다. 객체를 테이블에 맞춰 모델링 연관관계가 없는 객체 참조 대신 외래키 사용 (1) Member.java @Entity public class Member { @Id // DB PK @GeneratedValue @Column(name = "MEMBER_I.. 2021. 8. 12.
[JPA] 실습 - 요구사항 분석과 기본 매핑 요구사항 분석 회원은 상품을 주문할 수 있다. 주문 시 여러 종류의 상품을 선택할 수 있다. 도메인 모델 분석 회원 - 주문 관계 : 회원은 여러번 주문할 수 있다. (1:N) 주문 - 상품 관계 : 주문할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러번 주문될 수 있다. 따라서 주문과 상품 사이에 주문상픔이라는 모델을 만들어서 주문 - 상품 의 N:M 관계를 주문 - 주문상품 으로 1:N, 주문상품 - 상품 으로 1:N 의 관계로 만들어 준다. 테이블 및 엔티티 설계 실습 Entity - Member.java @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private.. 2021. 8. 3.
[JPA] 엔티티 매핑 엔티티 매핑 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 객체와 테이블 매핑 @Entity JPA가 관리하는 엔티티로 JPA를 이용해서 테이블과 매핑할 클래스에 어노테이션을 필수로 붙여준다. 특징 (1) 기본생성자 필수(파라미터가 없는 public or protected 생성자) (2) final 클래스, enum, interface, inner 클래스에는 사용 불가 (3) 저장할 필드에 final 사용 불가 속성으로 name 이 있으며 JPA에서 사용할 엔티티 이름을 지정하며, 기본값은 클래스 이름이고 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table 엔티티와.. 2021. 8. 2.
[JPA] 영속성 관리 JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑 (Object Relational Mapping) 영속성 컨텍스트 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경" 이라는 뜻 EntityManager.persist(entity); persist() 는 DB에 저장한다는 것이 아니라 entity를 영속성 컨텍스트에 저장하는 것 논리적인 개념으로 눈에 보이지 않는다. EntityManager를 통해 영속성 컨텍스트에 접근 ※ 환경별 영속성 컨텍스트 (1) J2SE 환경 EntityManager와 영속성 컨텍스트가 1:1 (2) J2EE, 스프링 프레임워크 같은 컨테이너 환경 EntityManager와 영속성 컨텍스트가 N:1 엔티티의 생명주기 생명주기 한눈에.. 2021. 7. 20.