Category: JPA

0

(JPA - 7) Spring Data JPA

MyBatis나 JDBC로 데이터 엑세스 계층을 개발하다보면 테이블 단위의 단순 CRUD 코드가 반복되고,조회 조건에 따라 findByXXXandYYY() 와 같은 메소드와 매핑된 SQL이 늘어난게 된다. Spring Data JPA는 CRUD와 같은 공통 인터페이스를 제공하고,findByXXXandYYY() 와 같은 메소드를 인터페이스에 정의만 해두면

0

(JPA - 6) 트랜잭션

영속성 컨텍스트의 내용이 트랜잭션이 커밋 될때 실제 데이터베이스에 반영이 된다.따라서 JPA에서 영속성 컨텍스트와 트랜잭션이 어떻게 관리되는지 아는 것이 매우 중요하다. 트랜잭션 범위J2SE 환경에서 트랜잭션엔티티 매니져로 부터 EntityTransaction 을 얻어서 트랜잭션을 관리한다.J2SE 환경에서는 엔티티 매니져마다 다른 영속성 컨텍스트를 사

0

(JPA - 5) 객체지향 쿼리 언어

EntityManager.find()는 식별자로 하나의 엔티티를 조회할 수 있었다.JPA는 좀 더 복잡한 검색을 위해서 다양한 객체지향 쿼리 기술을 제공 한다. JPQL: Java Persistence Query Language 네이티브 SQL: SQL을 직접 사용 Criteria 쿼리: JPQL을 쉽게 사용하더록 도와주는 API(빌더 클래스) Que

0

(JPA - 4) 프록시 객체, 즉시로딩, 지연로딩

엔티티를 조회할 때 연관관계를 맺고있는 다른 엔티티도 같이 조회된다.하지만 항상 연관된 엔티티 정보가 필요한 것은 아니므로 불필요한 데이터베이스 조회가 생기는 것이다.Employee 정보를 얻기위해 아래와 같이 조회한다면 내부적으로 Department 정보까지 동시에 조회를 한다. 1234567891011121314151617181920212223@En

0

(JPA - 3) 엔티티 매핑

앞에서 영속성 컨텍스트에 객체(엔티티)를 저장하는 것을 보았다.객체와 관계형 데이터베이스의 다른 개념을 어떻게 매핑하고 데이터가 반영되는지 알아보자. 객체(엔티티)를 영속성 컨테스트에 저장(persist) 후 트랜젝션이 커밋되는 시점에각 데이터베이스에 맞는 SQL을 생성하여 데이터베이스로 보내진다.객체를 어떻게 엔티티로 만들고 테이블과 매핑하는지 알아보

0

(JPA - 2) 영속성(Persistence) 관리

JPA를 사용하면 어플리케이션과 데이터베이스 사이에 영속성 컨텍스트(Persistence Context)라는 개념을 두고 데이터를 관리한다.영속성 컨텍스트란 무엇인지 어떻게 생성, 관리되는지 알아보자. 참조 : https://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html_single/ 엔티티

0

(JPA - 1) JPA사용을 위한 환경 설정

Spring boot + Spring Data JPA(하이버네이트)Spring Data JPA를 사용하면 JPA구현체로 Hibernate를 사용한다.Dependency를 따라가 보면 관련된 여러 라이브러리들이 추가되어 있는 것을 확인 할 수 있다. spring-orm: 스프링과 JPA를 연동하기 위한 라이브러리 hibernate-core hiberna