본문 바로가기

SPRING/JPA

[ JPA | 강의 따라 공부하기 ] 4.find()와 getReference()의 차이 find()메소드 find 메소드는 EntityManager에서 조회 연산을 수행한다. 첫번째 파라미터로 엔티티 타입을 지정하고 두번째 파라미터로 식별자를 전달한다. 엔티티 매니저는 그 값을 조회해 쿼리를 만들어서 데이터 베이스의 객체를 가져오게 된다. UserEntity userEntity = entityManager.find(UserEntity.class,email); 여기서 식별자는 @Id 어노테이션이 정의된 필드를 사용한다. 엔티티를 조회했을 때 식별자와 매핑되는 엔티티가 존재하면 엔티티 객체를 리턴하고 매핑되는 엔티티가 없으면 null을 리턴한다. getReference()메소드 getReference메소드는 find메소드와 마찬가지로 EntityManager에서 조회 연산을 수행한다. 첫번째 .. 더보기
[ JPA | 강의 따라 공부하기 ] 3. CRUD 기능 사용법 소개 및 TypedQuery맛보기 3.1. 데이터 추가하기 데이터를 추가하는 일반적인 진행 단계 EntityManager를 생성한다.(by EntityManagerFactory) - 트랜젝션을 가지고 있다. EntityTransaction을 시작한다.(by EntutyManager) 저장하고자 하는 Entity를 생성한다. - 먼저 만들어도 된다. EntityManager.persist()메소드를 통해 영속성 컨텍스트에 Entity객체를 저장한다. - 변경감지를 통해 데이터베이스에 저장하여 사전준비를 한다. EntrityTransaction.commit()메소드를 통해 DB에 실제 반영한다. Exception.3~5단계에서 예외가 발생할 경우transaction.rollback() 6. EntityManager.close()종료 3.2... 더보기
[ JPA | 강의 따라 공부하기 ] 2.커스텀 EntityManagerFactory 만들기 EntityManagerFactory 영속적 컨텍스트가 데이터를 엑세스하는 영역에서 뿐아니라 프로그램이 실행되는 프레젠테이션 영역까지 사용하기 위해 커스텀 EntityManager로 static한 클래스를 만들어서 관리하도록 한다. package studio.aroundhub.entity_manager_factory.factory; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class CEntityManagerFactory { // 커스텀 private static EntityManagerFactory entity.. 더보기
[ JPA | 강의 따라 공부하기 ] 1.JPA 기본설정 JPA JPA란 JAVA Persistence API의 약자로 자바의 ORM표준 스펙을 정의한다. JPA의 스펙은 자바의 객체와 데이터베이스를 어떻게 매핑하고 동작해야 하는지를 정의하고 있다. JPA는 어플리케이션의 필드값들을 데이터베이스에서 데이터값과 매핑을 시켜주는 역할을 한다. 하이버네이트 ORM Framework 중 하나 ‘JPA 프로바이더’ 라고도 부른다 JPA의 실제 구현체중 하나이며 현재 JPA구현체중 가장 많이 사용된다. 영속성 컨텍스트는 JPA가 관리하는 엔티티 객체의 집합니다. 엔티티 객체가 영속 컨텍스트에 들어오게 되면 JPA는 엔티티 객체의 매핑 정보를 가지고 DB에 반영한다. 엔티티 객체가 영속 컨텍스트에 들어오게 되어 관리 대상이 되면 그 객체를 영속 객체라고 한다. 영속성 컨텍.. 더보기