본문 바로가기

BackEnd/JPA24

[JPA] 고급 매핑 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 상속 관계 매핑 - 관계형 데이터베이스는 상속 관계가 없다.- 하지만 슈퍼타입, 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다.- 상속관계 매핑 : 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑한다. 슈퍼타입 서브타입 논리모델을 실제 물리 모델로 구현하는 방법은 크게 3가지가 있다.1. 조인전략(각각 테이블로 변환)Item@Entitypublic class Item { @Id @GeneratedValue private Long id; private String name; private int price;} Album, Movie, Book@Entitypublic class Album extends .. 2024. 7. 15.
[JPA] 다양한 연관관계 매핑 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 다대일 [N:1]연관관계 매핑 시 고려사항 3가지 1. 다중성- 다대일 : @ManyToOne- 일대다 : @OneToMany- 일대일 : @OneToOne- 다대다 : @ManyToMany (실무에서 사용하면 안 된다.) 2. 단방향, 양방향- 테이블외래 키 하나로 양쪽 조인 가능하다.사실 방향이라는 개념이 없다.- 객체참조용 필드가 있는 쪽으로만 참조 가능하다.한쪽만 참조하면 단방향이다.양쪽이 서로 참조하면 양방향이다.3. 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺는다.- 객체 양방향 관계는 A->B, B->A처럼 양쪽에서 참조가 가능하다.- 객체 양방향 관계에서 테이블의 외래 키를 관리할 곳을 지정해야 .. 2024. 7. 14.
[JPA] 연관관계 매핑 기초 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 단방향 연관관계객체와 테이블 연관관계의 차이를 이해해 보자. 객체를 테이블에 맞추어 모델링하는 예(참조 대신에 외래 키를 그대로 사용한다.)@Entitypublic class Team { @Id @GeneratedValue @Column(name ="TEAM_ID") private Long id; private String anme;}- TEAM_ID가 PK다.@Entitypublic class Member { @Id @GeneratedValue @Column(name ="MEMBER_ID") private Long id; @Column(name = "USERNAME") private St.. 2024. 7. 14.
[JPA] 엔티티 매핑 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 객체와 테이블 매핑 @Entity- @Entity가 붙은 클래스는 JPA가 관리하며, 이를 엔티티라 한다.- JPA를 사용하여 테이블과 매핑할 클래스는 @Entity 애노테이션이 필수이다.- 기본 생성자가 필수이다(파라미터가 없는 public 또는 protected 생성자).- 저장할 필드에 final 사용 불가.- final 클래스, enum, interface, inner 클래스 사용 불가. @Entity 속성- 속성 : name  ㄴ JPA에서 사용할 엔티티 이름을 지정한다.  ㄴ 기본값 : 클래스 이름을 그대로 사용한다. (예 : Member)  ㄴ 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table엔티티와 매핑할 .. 2024. 7. 12.
[JPA] 영속성 관리 - 내부 동작 방식 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 영속성 컨텍스트1JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑하기2. 영속성 컨텍스트 - 고객 요청이 올 때마다 엔티티 매니터 팩토리를 통해서 앤티티 매니저를 생성한다.- 앤티티 매니저는 내부적으로 DB 커넥션을 사용해서 DB에 접근한다. 그러면 영속성 컨텍스트란 뭘까? 영속성 컨텍스트- JPA를 이해하는데 가장 중요한 용어- 엔티티를 영구 저장하는 환경이라는 뜻- EntityManger.persist(entity); ㄴ persist 메서드는 DB에 저장하는 것이 아니라, 엔티티를 영속성 컨텍스트에 저장한다.- 논리적 개념으로 눈에 보이지 않는다.- 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. - 앤티티 매니.. 2024. 7. 12.
[JPA] JPA 시작하기 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 프로젝트 생성- 자바 8 이상- maven  ㄴ groupId : jpa-basic  ㄴ artifactId : ex1-hello-jpa  ㄴ version : 1.0.0 라이브러리 추가 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 17 17 UTF-8 org.hibernate hibernate-core 6.4.2.Final javax.xml.bind jaxb-api .. 2024. 7. 11.