TIL : JPA

원녕·2024년 2월 21일
0

TIL

목록 보기
1/21

❤️ Today I Learned

JPA

📕 내용

Java Persitence API

내가 아는 의미 : 쿼리문을 효율적으로 다룰수있게 해주고 테이블과 클래스 간의 매핑 관계를 보다 쉽게 설정할 수 있기 때문에 사용

  1. 객체와 테이블 매핑: JPA를 사용하면 애플리케이션의 클래스와 데이터베이스의 테이블 간의 매핑을 어노테이션을 사용하여 쉽게 설정할 수 있습니다. 이를 통해 데이터베이스 스키마의 세부 사항을 몰라도 데이터를 객체 지향적으로 다룰 수 있습니다.
  2. 쿼리 언어 지원: JPA는 JPQL(JPA Query Language)라는 쿼리 언어를 제공합니다. 이 언어는 객체를 대상으로 하는 쿼리를 작성할 수 있게 해줍니다. 개발자가 데이터베이스 특정 쿼리 언어를 배우고 작성하지 않아도, 객체를 기반으로 데이터를 검색하고 조작할 수 있습니다.
  3. 영속성 관리: JPA는 영속성 컨텍스트라는 메모리 영역을 통해 객체의 생명주기를 관리합니다. 이를 통해 데이터베이스와의 효율적인 상호작용을 가능하게 하며, 변경된 객체를 데이터베이스에 반영할 때 적절한 시점에 자동으로 처리됩니다.

중요점 : ***[[영속성 컨텍스트]]

사전적 의미 : 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것

JPA의 구성요소

  1. Persistence Unit (영속성 유닛): Persistence Unit은 JPA 설정의 최상위 단위입니다. persistence.xml 파일을 통해 정의되며, 데이터베이스 연결 정보, 엔터티 클래스의 목록, 데이터베이스 생성 및 업데이트 전략 등을 포함합니다.
  2. Entity Class (엔터티 클래스): JPA에서 관리되는 객체를 나타내는 클래스입니다. 각 엔터티 클래스는 데이터베이스의 특정 테이블과 매핑됩니다. 엔터티 클래스에는 @Entity 어노테이션을 사용하여 JPA가 이 클래스를 엔터티로 인식하도록 표시합니다.
  3. EntityManager (엔터티 매니저): EntityManager는 JPA에서 가장 중요한 인터페이스 중 하나입니다. 엔터티의 생명주기를 관리하며, 트랜잭션을 시작하고 커밋하는 등의 기능을 제공합니다. EntityManager를 통해 데이터베이스와의 상호작용이 이루어집니다.
  4. JPQL (Java Persistence Query Language): JPQL은 객체지향 쿼리 언어로, 엔터티 객체를 대상으로 하는 쿼리를 작성할 수 있도록 합니다. SQL과는 다르게 테이블이 아닌 엔터티 객체에 집중합니다.
  5. Persistence Context ([[영속성 컨텍스트]]): 영속성 컨텍스트는 엔터티 객체의 상태를 추적하고 관리하는 메모리 영역입니다. 엔터티 매니저를 통해 데이터베이스와의 작업을 수행할 때, 영속성 컨텍스트가 엔터티 객체의 변경을 감지하고 적절한 SQL을 생성하여 데이터베이스에 반영합니다.
profile
메타인지하는 개발자

0개의 댓글