JPA

영속성 컨텍스트, 1차캐시, 변경감지
영속성 컨텍스트란? - "엔티티를 영구 저장하는 환경"이라는 뜻이다. ex) em.persist(member) EntityManagerFactory를 통해 고객의 요청이 올 때마다 EntityManager를 생성하고, 새로운 고객 요청 시 또 다른 엔티티 매니저를 생성하고 엔티티 매니저는 내부적으로 데이터베이스 커넥션을 사용하여 DB를 사용하게 된다. - EntityManager는 DB에 저장하는 것이 아닌 엔티티 매니저를 통해 영속성 컨텍스트에 접근하는 것이다. - 실제로 DB에 쿼리가 날아가는 시점은 persist시점이 아닌 트랜잭션이 commit 된 시점이다. //비영속 Member member = new Member(); member.setId(10L); member.setName("member1..

ORM-JPA
JPA란? Java Persistence API의 약자로 자바 진영의 ORM 기술 표준이다. 그렇다면 ORM은 무엇일까?? - Object-relational mapping(객체 관계 매핑) -관계형 데이터베이스는 관계형 데이터베이스대로 설계 -ORM 프레임워크가 중간에서 매핑 JPA는 애플리케이션과 JDBC 사이에서 동작한다. 먼저 maven으로 JPA persistence.xml을 다음과 같이 설정한다. 이 옵션에서 살펴볼 것은 하이버네이트는 다양한 데이터베이스의 언어를 지원한다. 따라서 hibernate.dialect의 value의 데이터베이스를 바꾸어주면 알아서 바뀐 데이터 베이스의 언어로 매핑된다. JPA 구동 방식 JPA에서 Persistence는 META-INF/persistence.xml을..