JPA
-
[자바 ORM 표준 JPA 프로그래밍] [섹션 6] 다양한 연관관계 매핑JPA/자바 ORM 표준 JPA 프로그래밍 2023. 7. 17. 01:11
1. 연관관계 매핑시 고려사항 3가지 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany 단방향, 양방향 테이블 외래 키 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키 를 관리할 곳을 지정해야함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능 다대다는 실무에서 쓰면 안된다고 생각해라. 객..
-
[자바 ORM 표준 JPA 프로그래밍] [섹션 5] 연관관계 매핑 기초JPA/자바 ORM 표준 JPA 프로그래밍 2023. 7. 15. 16:25
Z1. 단방향 연관관계 객체를 테이블에 맞추어 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. 객체를 테이블에 맞추어 모델링 (연관관계가 없는 객체) 객체 지향 모델링 (ORM 매핑) Member.java package hellojpa; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username;..
-
[자바 ORM 표준 JPA 프로그래밍] [섹션 4] 엔티티 매핑JPA/자바 ORM 표준 JPA 프로그래밍 2023. 7. 13. 23:23
1. 객체와 테이블 매핑 객체와 테이블 매핑: @Entity, @Table @Entity @Entity가 붙은 클래스는 JPA가 관리 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final, enum, interface, inner 클래스 사용X @Entity @Table(name = "MBR")// MBR이라는 테이블과 매핑 -> INSERT INTO MBR ~public class Member { 2. 데이터베이스 스키마 자동 생성 DDL(CREATE, ALTER, DROP)을 애플리케이션 실행 시점에 자동 생성 테이블 중심 -> 객체 중심 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생..
-
[자바 ORM 표준 JPA 프로그래밍] [섹션 3] 영속성 관리 - 내부 동작 방식JPA/자바 ORM 표준 JPA 프로그래밍 2023. 7. 10. 15:58
1. 영속성 컨테스트1 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경" EntityManager.persist(entity); 논리적인 개념 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 비영속 (new/transient) - 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 (managed) - 영속성 컨텍스트에 관리되는 상태 준영속 (detached) - 영속성 컨텍스트에 저장되엇다가 분리된 상태 삭졔 (removed) - 삭제된 상태 // 객체를 생성한 상태(비영속) Member member = new Member(); member.setId("member1"); EntityManager em = emf.createEntityManager(..
-
[자바 ORM 표준 JPA 프로그래밍] [섹션 0~2] JPA 시작하기JPA/자바 ORM 표준 JPA 프로그래밍 2023. 7. 8. 23:11
pom.xml 설정 4.0.0 jpa-basic ex1-hello-jpa 1.0-SNAPSHOT 8 8 UTF-8 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 2.2.220 persistence.xml 설정 데이터베이스 방언 persistence.xml의 를 수정 DB create table Member ( id bigint not null, name varchar(255), primary key (id) ); JpaMain.java package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; impo..