Member member = new Member();
member.setUsername("member");
member.setHomeAddress(new Address("homeCity" , "street" , "10000"))
//임베디드 타입이기 떄문에 임베디드의 필드들이 해당 테이블의 컬럼으로 생성된다.
member.getFavoriteFoods().add("피자");
member.getFavoriteFoods().add("족발");
//member에 컬렉션 타입필드에 값을 넣는다.
//그럼 클래스에서 설정해둔 설정대로 테이블이 만들어지고 FK가 지정된다,
//FavoriteFoods 필드는 컬렉션타입이기 때문에 일단 get으로 불러와서 add메소드로 값을 저장하는 식으로 사용한다.
member.getAddressHistory().add(new Address("old" , "street" , "10000"))
member.getAddressHistory().add(new Address("old" , "street" , "10000"))
em.persist(member);
*값 타입 컬렉션의 생명주기는 Member에 소속되어 있기 떄문에
Member만 persist하면 컬렉션을 가지는 테이블이 알아서 생성된다,
값타입 컬렉션은 영속성 전에 cascade + 고아객체 제거 기능을 필수로 가진다고 볼 수 있다.
'JPA' 카테고리의 다른 글
| 2월 9일 JPA 값 타입을 엔티티로 승급 (0) | 2023.02.09 |
|---|---|
| 2월 9일 JPA 값타입 컬렉션 조회 예제 지연로딩 전략사용 (0) | 2023.02.09 |
| 2월 7일 JPA 값타입 컬렉션 저장@ElementCollection ,@CollectionTable (0) | 2023.02.07 |
| 2월 6일 JPA 값타입 비교 (0) | 2023.02.06 |
| 2월 6일 JPA 값타입과 불변객체 (0) | 2023.02.06 |