[JDBC] JPA vs MyBatis의 데이터 저장 로직 차이
Mybatis를 사용하면서 JPA를 사용하던 습관으로, 동일한 키값에 대해 insert를 해주면 duplicated 처리가 되는것이 아니라 key값을 제외한 내용이 update가 될것이라고 생각했다. 그러나 MyBatis는 위와 같은 처리에 대해 DuplicateKeyException이 발생했다. JPA의 데이터 저장 로직에 차이가 있기 때문이다. 1. JPA 동작 방식 영속성 컨텍스트(Persistence Context) : EntityManager나 JpaRepository를 통해 엔티티를 관리한다. 자동 병합(Merge) 동작 : entityManager.persist(entity) : 새로운 엔티티를 저장 entityManager.merge(entity) : 이미 존재하는 ID를 가진 엔티티..
2025.02.26