Spring JPA[N:N]
다대다 [ N:N ] 다대다 매핑 방법은, RDB에서 정규화된 테이블 2개로 다대다 관계를 표현할 수 없습니다. 그래서 중간에 테이블을 하나 추가해서, 일대다, 다대일 관계로 풀어나가야 합니다. 다대다 [N:N->1:N,N:1] - 단방향 Student Class @Entity public class Student { @Id ...
다대다 [ N:N ] 다대다 매핑 방법은, RDB에서 정규화된 테이블 2개로 다대다 관계를 표현할 수 없습니다. 그래서 중간에 테이블을 하나 추가해서, 일대다, 다대일 관계로 풀어나가야 합니다. 다대다 [N:N->1:N,N:1] - 단방향 Student Class @Entity public class Student { @Id ...
일대일 [ 1:1 ] 일대일 관계는 반대로 해도 일대일 입니다. 주 테이블이나, 대상 테이블 중에 외래 키 선택이 가능합니다. 외래 키에는 데이터베이스 유니크(UNI) 제약조건을 추가해야 합니다. 일대일 [1:1] - 단방향 [ 주 테이블 ] Member.class @Entity @Getter @Setter public class Member { ...
다대일 [N:1] 다대일은, 한쪽 객체가 N이고 반대쪽 객체가 1인 연관관계 입니다. 다대일 [N:1] - 단방향 Member.class @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String name;...
양방향 연관관계 양방향 연관관계에서는 양쪽 엔터티 간의 관계를 맺어주기 위해 두 엔터티 간에 매핑이 필요합니다. 이 때 한 엔터티가 다른 엔터티와의 관계를 주도하는 주인 역할을 하게 되는데, 이것을 연관관계의 주인이라고 합니다. 양방향 연관관계에서는 주인을 명시적으로 지정해주어야 하는데, 이때 사용되는 속성이 mappedBy입니다. 코드 예제 M...
연관관계 연관관계랑 객체들 간의 관계를 나타내는 개념으로 일종의 연결고리라고 생각하면 됩니다. 즉, 아파트에 살고있으면, 나와 내 이웃들간의 관계라고 생각하면 됩니다. 각각의 아파트 주민들은 서로에게 연결되고 있고, 이로인해 이웃 간에 상호작용이 발생할 수 있습니다. 이러한 관계를 연관관계라고 생각하시면 됩니다. 연관관계에는 주로 2종류가 있습...
Entity Mapping 기본키 매핑 Spring에서 기본키 매핑은 JPA을 통해 이루어집니다. @Entity(name = "testUser") @Table public class testUser { @Id @Column(name = "id") private Long id; @Column(name = "user_name...
Entity Mapping 필드와 컬럼 매핑 JPA에서 엔티티 클래스와 필드와 DB 테이블의 컬럼 간의 매핑은 @Column어노테이션을 사용하여 정의합니다. @Entity(name = "testUser") @Table public class testUser { @Id @Column(name = "id") private Long i...
Entity Mapping 객체와 테이블 매핑 @Entity(name = "testUser") @Table public class testUser { @Id @Column(name = "id") private Long id; @Column(name = "user_name") private String name; }...
Schema DB에서 테이블, 뷰, 인덱스 등 과 같은 객체들의 집합을 나타내는 방법입니다. DB내의 여러 사용자들 간의 DB객체의 소유 및 구조를 정의하는 것 입니다. JPA Schema JPA에서는 DDL을 애플리케이션 실행 시점에 자동으로 생성합니다. 이는 테이블 중심이 아닌 객체중심입니다. DB방언을 활용해서 DB에 맞는 적절한 DDL을...
영속성 컨텍스트 1차 캐시 영속성 컨텍스트는 객체(Entity)를 처음으로 로딩할 때 해당 객체(Entity)에 대한 데이터를 보관하며, 트랜잭션 내에서 이를 관리하는 상태에 있습니다. 이 특성으로 1차 캐시를 활용할 수 있습니다. 1차 캐시는 영속성 컨텍스트 내부에 존재하며, JPA에서 객체(Entity)를 조회할 때 해당 객체(Entity)를 ...