문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
|
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:// | ||
| + | |||