임베디드 타입 활용법

Lumi·2021년 8월 5일
0

JPA

목록 보기
10/11
post-thumbnail

쉽게 말하면 객체를 다루는 것과 비슷하다고 생각한다.

만약 user라는 Entity에 새로운 싶은데 변수들의 종류가 한 종류(주소에 관한 값, 친구 목록 등등)라면 하나의 class를 만들어서 관리하는것이 좀더 객체 지향적이다.

이와 같이 Address라는 주소의 class를 만들어 주었다.
loombook은 다른것과 동일하며 @Column은 중복이 없을시에 사용하면 된다.

@Embeddable라는 어노테이션을 적용하여 임베디드 가능한 class라는 것을 선언해 준다.

그후 User class에 가서 @Embedded를 선언해 관리하겠다고 코드를 만들어 준다.

이렇게 된다면

이와 같이 코드를 사용할수 있게 되고 User를 통해서 address값들을 수정 및 입력 해줄수 있게 된다.
-> 만약 빈생성자를 입력 하거나
(new Address())
-> 값을 입력하지 않는다면
user.setAddress(null)
== 둘다 모두 같은 값인 null이 된다.

하지만 만약 Address를 두개를 참고해야 하는상황

이와 같이 Address class를 두개를 사용 해야 한다면 이름을 각각 지정해 주어야 한다
-> 이름을 지정해 주지 않을시에는 DB에서는 같은 변수로 인식을 하여 오류가 발생된다.

이처럼 어노테이션들을 활용하여 변수의 이름을 지정해 주게 된다면 오류는 발생하지 않게 되고 사용법은 위와 동일하다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글