JPA 2

엔터프라이즈 ORM과 1차캐시

DB CRUD 작업을 쿼리없이 ORM을 처리하면 참 편리한데,여러 언어들과 다양한 ORM들의 차이를 이해하지 못하면, 난감한 상황이 발생하곤 한다.기본적인 ORM의 뜻대로, 객체와 매핑이 되는건 동일하지만동적 타입 언어들과 정적 타입 언어들은 확실히 다르다. 난감한 상황으로써, ORM의 1차캐시에 대해 알아보자. Java진영의 JPA를 예로 들면, Persistence Context (Enitity Manager) 에서 1차캐시를 관리한다.같은 객체를 한번만 조회하고, 이후에는 캐시에서 읽는 효율적인 쿼리동작을 가능하게 한다.1차캐시를 기반으로, CRUD가 즉시 실행되지 않는 형태가 많다. (장점이자 단점인 부분) 전제>> 1차 캐시는 "트랜잭션 범위 메모리 캐시"이다. DB와 동기화되기 전까지는 메모리..

dev/database 2026.02.24

JPA라는 애물단지

JPA가 뭐냐? JPA(Java Persistence API) 라는 것으로 JAVA진영 ORM 표준 되시겠다. 표준이면 좋겠구나. 올바른 방법이라고 생각했다. Hibernate는 JPA가 맞는지 의심스럽고, @Transactional 과 같이 사용하면 정말 멋지다. 이것은 필자가 생각하는 지극히 개인적인 Spring Data JPA + Hibernate 사용 소감이다. (아마도 Hibernate만 직접쓰면 문제는 덜할지 모른다.) 장점 표준 ORM으로써 자바의 철학을 만끽할 수 있다. SQL작성 전혀없이 CRUD를 구현할 수 있다.(모든 ORM의 장점이다) 단점 실제 사용은 표준이 표준이 아니다. Hibernate와 Spring Data JPA는 이미 표준이상의 기능으로 무장중이고, 이것은 마치 IE의 ..

카테고리 없음 2020.11.30