JPA 자료 정리

0

JPA

목록 보기
9/15

1.1. Java Persistence API소개

1.1. ORM/JPA/Hibernate의 개념정리

  • ORM(ObjectRelationMapping)이란 OOP의 Object와 RDBMS의 Entity를 매핑(연결)(영속성을 유지하기 위함)하려는 개념이다.
  • JPA는 Java언어로 지원하는 ORM 기술에 대한 추상화된 표준 명세입니다. JPA의 시초는 EJB의 EntityBean이다..
    Hibernate는 JPA를 기반으로 구현한 제품입니다. Hiberbate외에도 DataNucleus, EclipseLink등 여러제품이 존재한다..

1.2. JPA의장점

  • DB설계와 JAVA설계를 한번에 처리할 수 있다
    테이블이 변경되면 SQL변경되고, DAO서비스, 화면까지 변경해야합니다.
    반면 jpa를 이용하면 테이블 생성등과 같은 작업부터 변경되는 DB설계와 JAVA설계를 한번에 처리할 수 있어서 익숙해진다면 빠른 생산성을 얻을 수 있다.

1.3. JPA의단점

  • 객체지향 설계원칙(SOLID)가 반영되어야 한다
  • 기존의 SQL재사용 불가 및 SQL튜닝 등의 작업에 제약이 생길 수 있다

2. 엔티티와 엔티티메니저

2.1. 엔티티

DB의 엔티티란 업무와 관련된 데이터로서 DB에서 관리되는 대상을 말합니다. '인스턴스'또는 '레코드'라는 용어로도 부른다.
엔터티와 영속성을 유지하는 객체를 엔터티객체(테이블의 한 행)라 한다

2.2. 엔티티객체 매니저 (EntityManager)

엔티티객체들의 LifeCycle을 관리하는 역할을 합니다. 엔티티들을 persistence context라는 곳에 넣어두고 관리한다.

  • EntityManager는 Entity Manager Factory로부터 생성된다.

2.3. 기존의 JPA과 Spring DataJPA

  • JPA에서는 EntityManager라는 존재를 이용해서 영속성(Persistance)를 관리하게 된다.
    이때 객체를 보관하려면 persist(), 트랙잭션용 commit(), rollback(), 자원들을 정리하려면 close()등 복잡한 관리코드가 필요하다.

🌸 Spring Data JPA

  • Spring Data JPA는 JPA를 쓰기 편하게 만들어놓은 모듈이다.
    Spring Data JPA의 경우에는 단순히 인터페이스 설계만 하면, Spring JPA가 인터페이스를 구현한 DynamicProxy클래스를 자동으로 만들어 주기 때문에 별도의 코드없이 JPA를 활용할 수 있다.(Proxy개념의 이해)

2.4. Spring Data JPA와 Mybatis차이점


profile
백엔드를 공부하고 있습니다.

0개의 댓글