문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
java:jpa:map [2014/05/22 17:56] kwon37xi 새로 만듦 |
java:jpa:map [2019/04/22 14:37] (현재) kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== | + | ====== |
* Entity를 Map으로 가질 수도 있고, 일반 값 객체를 Map으로 가질 수도 있다. | * Entity를 Map으로 가질 수도 있고, 일반 값 객체를 Map으로 가질 수도 있다. | ||
줄 6: | 줄 6: | ||
* 예) Parent -> Child 맵<code java> | * 예) Parent -> Child 맵<code java> | ||
public class Parent { | public class Parent { | ||
+ | // .... | ||
@OneToMany(cascade = {CascadeType.ALL}) | @OneToMany(cascade = {CascadeType.ALL}) | ||
@JoinColumn(name = " | @JoinColumn(name = " | ||
줄 11: | 줄 12: | ||
private Map< | private Map< | ||
} | } | ||
- | 이 상황에서 Parent 객체를 children 값까지 다 채워서 persist 하면 insert 후에 update 동반 발생 | + | // 이 상황에서 Parent 객체를 children 값까지 다 채워서 persist 하면 insert 후에 update 동반 발생 |
+ | // 이미 insert 상황에서 children 테이블의 parent_id, map_key의 채워진 상황. | ||
+ | |||
+ | update children set parent_id=?, | ||
</ | </ | ||
+ | * Parent의 '' | ||
+ | @OneToMany(cascade = {CascadeType.ALL}) | ||
+ | @JoinColumn(name = " | ||
+ | @MapKeyColumn(name = " | ||
+ | private Map< | ||
+ | | ||
+ | // 이후 update 안 일어남. | ||
+ | </ | ||
+ | * **근본적으로 Map의 Key가 Entity에 직접 들어가는 상황이라면 Entity Map 보다는 Embeddable Map이 맞는 것 같다**. | ||
+ | |||
+ | ===== 참조 ===== | ||
+ | * [[https:// | ||
+ | |||