본문 바로가기

embeddable3

JPA - 값 타입 - 요구사항 분석과 맵핑5 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 값 타입 사용 이전에 사용했던 UML 다이어그램을 잠시 살펴보자. 위의 다이어그램에서 Member 와 Delivery 엔티티에 city, street, zipcode 속성을 주소로 맵핑해보자. 우선 Address 값 타입을 선언해보자. @Embeddable public class Address { private String city; private String street; private String zipcode; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((city == null) ? 0 : city.hashCode().. 2021. 7. 27.
JPA - 값 타입 - 임베디드 타입 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 값 타입 JPA 의 데이터 타입을 분류하면 엔티티 타입과 값 타입이 있다. 엔티티 타입은 @Entity 어노테이션으로 정의했던 객체들이고, 값 타입은 int, String 등 기본 타입이나 값으로 사용하는 객체를 말한다. 엔티티는 식별자가 있다. 우리는 어떤 사람이 자라면서 키나 몸무게가 달라진다고해서 그 사람을 다른사람이라고 인식하지 않는다. 반면 값은 100 에서 200 으로 변하면 완전히 다른 값이 된다. 이는 DDD에서 Value Object 와 Entity 를 구분하는 내용에도 등장하는 개념이므로 헷갈린다면 이번 기회에 이해해두도록 하자. - 기본값 타입 @Entity public class Member extends DateMarkable{ @.. 2021. 7. 20.
JPA - 고급맵핑 - 복합키와 식별 관계 맵핑 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 참조: https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/JoinColumns.html - 식별 vs 비식별 관계 이전에도 언급했듯이 DB 에서는 외래키(FK)를 기본키(PK)에 포함하는지 여부에 따라 식별과 비식별 관계로 구분한다. 위의 ER Diagram 에서 CHILD 테이블을 보면 PARENT 테이블의 PK 인 PARENT_ID 를 PK 이자 FK 로 사용하고 있다. 외래키를 기본키에 포함하고 있으므로 식별관계이다. 위 다이어그램은 CHILD 테이블에서 PARENT_ID 를 FK 로만 참조하고 있고, CHILD_ID 를 PK 로 사용하고 있다. FK 가 PK 에 포함되지 않으므로 비식별.. 2021. 7. 11.