SPRING-DATA

2018-11-17
JPA Java Persistence API 는 엔티티에 변경이 일어나면 이를 감지하여 자동으로 데이터베이스에 반영한다. 이런 특징에 익숙지 않은 상태에서 스프링 데이터 Spring Data JPA 를 사용하다 보면 예상치 못한 지점에서 SQL update 구문을 보는 경우가 있다. 이 글은 JPA 변경 감지가 무엇이고 스프링 데이터 JPA와는 어떤 관계가 있는지 설명한다. JPA 변경 감지 Dirty Checking JPA는 엔티티 매니저 Entity Manager 가 엔티티를 조회/저장/삭제/수정한다. 엔티티 매니저의 API 를 살펴보면 조회(find), 저장(persist), 삭제(remove)는 제공하지만 이상하게도 수정 API는 찾아볼 수 없다. 그 이유는 엔티티 매니저가 엔티티가 변경이 일어나면 이를 자동 감지하여 데이터베이스에 반영하기 때문인데 이것을 변경 감지라고 한다. 간단한 JPA 코드로 확인해 보자....
2017-11-26
* 이 글은 2016년 1월 개인 위키에 올렸던 글을 옮긴 것임을 알려드립니다. 공식 참조 문서 29.3. JPA and ‘Spring Data’ 내용 설명 라이브러리 추가 빌드 스크립트에 아래와 같이 두 줄을 추가한다. 첫 줄 라이브러리는 Hibernate, Spring ORM, Spring Data JPA를 한번에 참조하게 한다. 다음으로 데이터베이스 접속을 위한 라이브러리를 써준다. 부트는 별도 설정없이 라이브러리에 따라 H2 , HSQL , Derby 내장 데이터베이스를 지원한다. 실제로 확인한 것은 아니지만 인터넷 검색을 해보면 대체로 h2가 셋 중에 빠르다는 기록이 있어서 이를 쓰기로 한다....
더보기