🍀spring/스프링 jpa

🍀spring/스프링 jpa

[Spring JPA] 값 타임

안녕하세요. 오늘은 JPA 데이터 타입에 대하 알아보는 시간을 갖으려 합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. JPA의 데이터 타입을 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입은 @Entity로 정의하는 객체고, 값 타입은 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말한다. 엔티티 타입은 식별자를 통해 지속해서 추적할 수 있지만, 값 타입은 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없다. 기본값 타입@Entity public class Member { @Id @GeneratedValue private Long id; private String name; private int ag..

🍀spring/스프링 jpa

[Spring JPA] 프록시와 연관관계 관리

안녕하세요. 오늘은 프록시와 즉시로딩, 지연로딩 그리고 영속성 전이와 고아 객체에 대해 알아보는 시간을 가지려 합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. 프록시 엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아니다. 예를 들어 회원 엔티티를 조회할 때, 연관된 팀 엔티티가 사용되지 않을 때도 있다. 사용되지 않는 팀 엔티티를 미리 조회하는 것은 효율적이지 못하다. JPA는 이런 문제를 해결하기 위해 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데 이를 지연 로딩이라고 한다. 쉽게 이야기하면 team.getName() 과 같이 팀 엔티티 값을 실제 사용하는 시점에 데이터베이스에서 팀 엔티티에 필요한 데이터를 조회하는 것이다. 지연 로딩..

🍀spring/스프링 jpa

[Spring JPA] 고급 매핑 (상속, 복합 키 매핑)

안녕하세요. 저번 게시글에서는 다대일, 일대다, 일대일, 다대다 매핑에 대해서 알아보았는데요. 이번에는 그 외에 상속 매핑, 복합 키, 조인 클래스 등에 대해 알아보려 합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. 상속 관계 매핑 관계형 데이터베이스에는 객체지향 언어에서 다루는 상속 개념이 없다. 대신에 슈퍼타입 서브타입 관계라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. ORM에서 이야기하는 상속 관련 매핑은 객체의 상속 구조와 데이터베이스 슈퍼타입, 서브타입 관계를 매핑하는 것이다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현할 때는 3가지 방법을 선택할 수 있다. 조인 전략, 단일 테이블 전략, 구현 클래스마다 테이블 전략이다. 이 방법들에 대..

🍀spring/스프링 jpa

[Spring JPA] 다양한 연관관계 매핑

안녕하세요. 저번 게시글에서 다대일 단방향 매핑과 양방향 매핑에 대해서 알아보았는데요. 오늘은 다대일, 일대다, 일대일, 다대다 매핑에 대해 알아보려고 합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. 다대일 다대일 관계의 반대 방향은 일대다 관계고 일대다 관계의 반대 방향은 항상 다대일 관계이다. 데이터베이스 테이블의 일, 다 관계에서 외래 키는 항상 다쪽에 있다. 따라서 겍채 양방향 관계에서 연관관계 주인은 항상 다쪽이다. 회원과 팀 관계에서 연관관계 주인은 회원이다. 다대일 단방향 다대일 단뱡향 관계의 코드이다. @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long..

pkyung
'🍀spring/스프링 jpa' 카테고리의 글 목록