티스토리 뷰
Class Clr {
...
@ElementCollection
public List<Long> cioIds;
...
}
* 개요
1. clr1 이 있음.
cioIds는 Clr_cioIds 란 테이블로 별도 저장됨.
2. clr2 를 생성
clr2.cioIds = clr1.cioIds
3. clr2 를 저장
- 결과 :
clr2 의 cioIds 는 정상적으로 저장되지만,
원본인 clr1 의 cioIds 가 삭제됨
* 문제해결
clr2.cioIds =... 형식 대신
clr2.setCioids(clr1.cioIds) 로 대입함.
- cioIds 단순한 Long 이지만, Hibernate 안 에서는 Proxy 객체인듯함.
저장시 set 함수 아닌 그대로 대입시에는 clr1 의 객체를 가져다쓰게 되어서
해당 Long 객체의 주인이 clr1 => clr2 로 바뀌어 없어진다고 생각됨.