SW개발/Hibernate

@ElementCollection 지정된 개체, 저장 후 기존 데이터 사라지는 현상

개소왕 2018. 7. 11. 15:30

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 로 바뀌어 없어진다고 생각됨.