Hibernate One to Many
1. 설명 일대다 매핑은 한 테이블의 한 행이 다른 테이블의 여러 행에 매핑된다는 것을 의미한다. 일대다 연관 관계를 확인하기 위해 다음의 엔티티-관계 다이어그램을 확인한다. 예제에서는 각 cart에 대한 테이블과 각 항목에 대한 또 다른 테이블이 있는 cart 시스템을 구현한다. 하나의 cart는 여러 항목을 가질 수 있으므로 여기서는 일대다...
1. 설명 일대다 매핑은 한 테이블의 한 행이 다른 테이블의 여러 행에 매핑된다는 것을 의미한다. 일대다 연관 관계를 확인하기 위해 다음의 엔티티-관계 다이어그램을 확인한다. 예제에서는 각 cart에 대한 테이블과 각 항목에 대한 또 다른 테이블이 있는 cart 시스템을 구현한다. 하나의 cart는 여러 항목을 가질 수 있으므로 여기서는 일대다...
1. 매핑 관계형 데이터베이스는 클래스 계층을 데이터베이스 테이블에 매핑하는 간단한 방법이 없다. 이를 해결하기 위해 JPA 사양은 여러 가지 전략을 제공한다. MappedSuperclass - 부모 클래스, 엔터티가 될 수 없다. Single Table - 공통 조상을 가진 서로 다른 클래스의 엔터티가 단일 테이블...
1. 기본 @ManyToMany 관계 간단한 @ManyToMany 관계로 도메인 모델 엔티티, 관계 엔티티, 샘플 테스트 데이터가 필요하다. 1) 도메인 모델 @ManyToMany로 연결된 두 개의 간단한 엔터티인 User와 Group이 있다. @Entity(name = "users") public class User { @Id @...
1. 캐스케이딩이란 엔티티 관계는 종종 다른 엔티티의 존재에 따라 달라진다. 예를 들어, Person-Address 관계이다. Person이 없으면 Address 엔티티는 자체적으로 의미가 없다. Person 엔티티를 삭제하면 Address 엔티티도 삭제되어야 한다. 이를 달성하는 방법은 캐스케이딩이다. 대상 엔터티에서 어떤 작업을 수행하면 동일한 ...
1. 테이블에 매핑 JPA는 Java 애플리케이션에서 관계형 데이터베이스 모델을 다루는 것을 덜 고통스럽게 만든다. 모든 테이블을 단일 엔티티 클래스에 매핑하면 모든 것이 간단하다. 하지만 때때로 엔터티와 테이블을 다르게 모델링해야 하는 이유가 있다. 필드의 논리적 그룹을 만들려면 여러 클래스를 단일 테이블에 매핑할 수 있다. ...
1. 차이점 JPA 관계는 단방향 또는 양방향일 수 있다. 이는 단순히 연관된 엔터티 중 하나 또는 둘 다에 대한 속성으로 모델링할 수 있음을 의미한다. 엔티티 간 관계의 방향을 정의하는 것은 데이터베이스 매핑에 영향을 미치지 않는다. 도메인 모델에서 해당 관계를 사용하는 방향만 정의한다. 양방향 관계의 경우 일반적으로 다음을 정의한다. ...
1. @OneToOne 매핑 예제 @JoinColumn 주석과 @OneToOne 매핑을 결합하면 소유자 엔터티의 주어진 열이 참조 엔터티의 기본 키를 참조한다는 것을 나타낸다. @Entity public class Office { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "addre...
1. 기본 다대다 1) 다대다 관계 모델링 관계는 두 유형의 엔터티 간의 연결이다. 다대다 관계의 경우, 양측은 다른 측의 여러 인스턴스와 관련될 수 있다. 엔티티 유형이 서로 관계를 맺을 수 있다. 가계도 모델링의 예를 생각해 본다. 모든 노드는 사람이기 때문에 부모-자식 관계에 대해 이야기하면 두 참여자 모두 사람이 된다. 하지만, 단일 또는...
1. 설명 사용자 관리 시스템을 구축하고 있다고 가정한다. 그리고 상사가 각 사용자의 우편 주소를 저장하라고 요청한다. 사용자는 우편 주소가 하나 있고, 우편 주소에는 단 한 명의 사용자만 연결된다. 이는 일대일 관계의 예이며, 이 경우 사용자와 주소 엔터티 간의 관계이다. 2. 외래 키 사용 1) 외래 키 사용 모델링 외래 키 기반의 일대일 매...
1. Serializable 인터페이스 Serializable은 코어 Java에서 발견되는 몇 안 되는 마커 인터페이스 중 하나이다. 마커 인터페이스는 메서드나 상수가 없는 특수한 경우의 인터페이스이다. 객체 직렬화는 Java 객체를 바이트 스트림으로 변환하는 프로세스이다. 그런 다음 이러한 바이트 스트림을 와이어를 통해 전송하거나 영구 메모리에 저...