(JPA - 7) Spring Data JPA
MyBatis나 JDBC로 데이터 엑세스 계층을 개발하다보면 테이블 단위의 단순 CRUD 코드가 반복되고,조회 조건에 따라 findByXXXandYYY() 와 같은 메소드와 매핑된 SQL이 늘어난게 된다. Spring Data JPA는 CRUD와 같은 공통 인터페이스를 제공하고,findByXXXandYYY() 와 같은 메소드를 인터페이스에 정의만 해두면
MyBatis나 JDBC로 데이터 엑세스 계층을 개발하다보면 테이블 단위의 단순 CRUD 코드가 반복되고,조회 조건에 따라 findByXXXandYYY() 와 같은 메소드와 매핑된 SQL이 늘어난게 된다. Spring Data JPA는 CRUD와 같은 공통 인터페이스를 제공하고,findByXXXandYYY() 와 같은 메소드를 인터페이스에 정의만 해두면
영속성 컨텍스트의 내용이 트랜잭션이 커밋 될때 실제 데이터베이스에 반영이 된다.따라서 JPA에서 영속성 컨텍스트와 트랜잭션이 어떻게 관리되는지 아는 것이 매우 중요하다. 트랜잭션 범위J2SE 환경에서 트랜잭션엔티티 매니져로 부터 EntityTransaction 을 얻어서 트랜잭션을 관리한다.J2SE 환경에서는 엔티티 매니져마다 다른 영속성 컨텍스트를 사
EntityManager.find()는 식별자로 하나의 엔티티를 조회할 수 있었다.JPA는 좀 더 복잡한 검색을 위해서 다양한 객체지향 쿼리 기술을 제공 한다. JPQL: Java Persistence Query Language 네이티브 SQL: SQL을 직접 사용 Criteria 쿼리: JPQL을 쉽게 사용하더록 도와주는 API(빌더 클래스) Que
엔티티를 조회할 때 연관관계를 맺고있는 다른 엔티티도 같이 조회된다.하지만 항상 연관된 엔티티 정보가 필요한 것은 아니므로 불필요한 데이터베이스 조회가 생기는 것이다.Employee 정보를 얻기위해 아래와 같이 조회한다면 내부적으로 Department 정보까지 동시에 조회를 한다. 1234567891011121314151617181920212223@En
앞에서 영속성 컨텍스트에 객체(엔티티)를 저장하는 것을 보았다.객체와 관계형 데이터베이스의 다른 개념을 어떻게 매핑하고 데이터가 반영되는지 알아보자. 객체(엔티티)를 영속성 컨테스트에 저장(persist) 후 트랜젝션이 커밋되는 시점에각 데이터베이스에 맞는 SQL을 생성하여 데이터베이스로 보내진다.객체를 어떻게 엔티티로 만들고 테이블과 매핑하는지 알아보
JPA를 사용하면 어플리케이션과 데이터베이스 사이에 영속성 컨텍스트(Persistence Context)라는 개념을 두고 데이터를 관리한다.영속성 컨텍스트란 무엇인지 어떻게 생성, 관리되는지 알아보자. 참조 : https://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html_single/ 엔티티
Spring boot + Spring Data JPA(하이버네이트)Spring Data JPA를 사용하면 JPA구현체로 Hibernate를 사용한다.Dependency를 따라가 보면 관련된 여러 라이브러리들이 추가되어 있는 것을 확인 할 수 있다. spring-orm: 스프링과 JPA를 연동하기 위한 라이브러리 hibernate-core hiberna