Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

KSI일기장

231031 JPA 이론 본문

Spring

231031 JPA 이론

MyDiaryYo 2023. 10. 31. 15:01

 - Object-Relational Mapping (객체와 관계형데이터베이스 매핑, 객체와 DB의 테이블이 매핑을 이루는 것)

 - 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 이다.
 - 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편리하게 처리할 수 있는 방법
 - SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다.
ex) 기존쿼리 : SELECT * FROM MEMBER; 이를 ORM을 사용하면 Member테이블과 매핑된 객체가 member라고 할 때, member.findAll()이라는 메서드 호출로 데이터 조회가 가능하다.

 

 

 - Java Persistence API (자바 ORM 기술에 대한 API 표준 명세)
 - 한마디로 ORM을 사용하기 위한 인터페이스를 모아둔 것 이라고 볼 수 있다.
 - 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.
 - ORM에 대한 자바 API 규격이며 Hibernate, OpenJPA 등이 JPA를 구현한 구현체 이다. (ORM을 사용하기 위한 인터페이스를 모아둔 것)
 - Hibernate 이외에도 EcipseLink, DataNucleus, OpenJPA, TopLink 등이 있습니다.
※결국 인터페이스이기 때문에 JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 한다.

 

 

 - JPA를 사용하기 위해서 JPA를 구현한 ORM 프레임워크중 하나.
   (자바를 위한 오픈소스 ORM(Object-relational mapping) 프레임워크를 제공한다.)
 - Hibernate는 JPA 명세의 구현체이다. javax.persistence.EntityManager와 같은 JPA의 인터페이스를 직접 구현한 라이브러리이다.

 

@Entity

   - @Entity가 붙은 클래스는 JPA가 관리하는 것으로 테이블과의 매핑

   -속성 name: JPA에서 사용할 엔티티 이름을 지정, 보통 기본값인 클래스 이름을 사용한다.

   -주의: 기본 생성자는 필수 (JPA가 엔티티 객체 생성 시 기본 생성자를 사용)

   -Entity란 데이터베이스에 저장하기 위해 유저가 정의한 클래스입니다.(RDBMS에서 Table의 정의같은것, Table이름이나      칼럼들에 대한 정보를 가져온다.)

 

 

Entity 설정이 끝나면 메소드처럼 사용할 수 있다. 예를 들어 findId.() 처럼 사용 가능

쿼리문 작성 안해도 된다. 대신 조회만 가능하고 Insert나 Update 하려면 Dto 생성 후 사용 가능