entity 가 이미 영속성에 등록 되있으면 merge를 없으면 persist 를 실행하게 돼있다.
merge 는 해당 ID 가 영속성에 존재하면 update 를 수행. 없으면 INSERT 를 수행한다.
여기서 주의할 점은 ID 가 없을 경우 SELECT 를 시도하는 경우가 있을 수 있다는 것.
기본키 생성 전략이 없을 경우 (애플리케이션에서 생성) SELECT 를 수행한 후, INSERT 를 실행하기에 쿼리가 2배로 실행됨.
persist 의 경우 INSERT 쿼리만 실행 됨.
즉, 정리하면 merge 는 기존의 객체가 존재할 경우 사용하면 좋고, persist 는 새로운 객체를 생성할 때 좋음.
'개발 지식' 카테고리의 다른 글
포트포워딩 하는 법 (0) | 2020.12.10 |
---|---|
IP 주소 (0) | 2020.12.10 |
윈도우에서 특정 포트번호 사용하고있는 프로세스 kill (0) | 2020.12.02 |
Json을 읽어올 때 BufferedReader.readLine() 사용을 조심해야하는 이유 (0) | 2020.11.23 |
JavaScript의 배열 선언 방식과 그에따른 '==', '===' 연산자 사용시 다른 점 정리 (0) | 2020.11.22 |