
JPA를 이해하려면 영속성 컨텍스트를 이해해야한다. JPA를 이해하는데 있어서 가장 중요한 두가지가 있다.객체와 관계형 데이터베이스 매핑 \- DB를 어떻게 설계하고 객체를 어떻게 설계해서 중간에서 JPA를 어떻게 매핑해서사용할 것인지 영속성 컨텍스트 \- J

JPA는 자바의 ORM기술이다. ORM이란 Object-Relational Mapping 의 약자로 객체와 관계형 데이터베이스의 테이블을 매핑해주는 기술이다.JPA에 대해서 알아보기 전에 먼저 ORM에 대해서 정리해보자보통 JAVA를 사용해서 프로그래밍을 할 때 객체를

JPA에서 테이블과 객체를 매핑하기 위해 @Entity 어노테이션을 사용해서 객체 테이블 간의 매핑을 해준다. 하지만 아무 클래스에나 @Entity를 붙인다고 해서 다 동작하는 것은 아니다. 1. @Entity의 필수 조건 >- 기본 생성자 필수 finalClass

전통적인 DB 설계 방식에서는 테이블간 관계를 외래키(FK) 로 연결한다. 예를 들어 Order테이블에 member_id컬럼이 존재한다면, 이 컬럼을 통해 Member테이블과 Order테이블 간의 연관관계가 있다는걸 알 수 있다. 하지만 JPA에서는 이렇게 외래 키만을

JPA로 도메인 모델을 설계하다보면 공통된 속성을 가진 여러 엔티티들을 만들어야 하는 상황이 생길 수 있다. 예를 들어 Item_ 이라는 상위개념 아래에 Book, Movie, Album_ 같은 하위개념이 있을 수 있다. 이럴 때 각 엔티티마다 같은 필드를 반복해서 정

JPA에는 수많은 장점들이 있는데 그 중 하나가 객체그래프로 연관관계 탐색이 가능하다는 것이다. 엔티티를 조회할 때는 한 객체 조회 시 모든 연관관계를 조회하는 것보다 필요한 연관관계만 조회하는게 효율적이다. 그래서 JPA에서는 "지연로딩" 이라는걸 지원한다. 일반적으

Member와 Team이라는 두 엔티티가 있다고 가정해보자. 이 둘 사이에 JPA 연관관계가 설정되어 있다면, Member를 조회할 때 자동으로 Team도 Join 을 통해 함께 조회되도록 설정할 수 있다. 하지만 항상 Member를 조회할 때마다 Team까지 함께 조

1. 영속성전이란? > 특정 엔티티를 영속화 시킬때 관련된 엔티티도 함께 영속화 시켜 함께 저장, 삭제할 수 있게 해주는기능이다. 예를들어 Team 과 Member가 1:N 관계이고 Team을 저장할 때 연관된 Member도 함께 저장하고 싶다면?