46. JPA

박선규's avatar
Mar 13, 2024
46. JPA

JPA의 주요 요소들:

JPA의 완전한 기능을 활용하려면 아래의 요소들이 모두 사용되어야 합니다.
  1. 엔티티(Entity): 자바 객체와 데이터베이스 테이블을 매핑하는 클래스. JPA는 엔티티를 통해 데이터베이스 테이블을 관리합니다.
      • @Entity, @Table, @Id 등의 어노테이션을 통해 자바 클래스와 테이블을 매핑합니다.
  1. JPQL (Java Persistence Query Language): 데이터베이스 테이블이 아닌, 엔티티를 기준으로 쿼리를 작성하는 언어. 객체 지향적인 쿼리를 통해 JPA의 추상화된 데이터 접근을 가능하게 합니다.
      • 예: SELECT u FROM User u WHERE u.name = :name
  1. 영속성 컨텍스트(Persistence Context): 엔티티의 상태를 관리하고, 엔티티와 데이터베이스 간의 상호작용을 투명하게 처리하는 컨텍스트. 이를 통해 데이터베이스와 자바 객체 간의 상태 동기화가 이루어집니다.
      • EntityManager를 통해 엔티티 객체를 영속성 컨텍스트에 추가하거나 조회, 삭제합니다.
  1. 트랜잭션 관리: 데이터베이스의 일관성을 유지하기 위해, 트랜잭션을 통해 작업의 원자성을 보장합니다.

JPA의 주요 어노테이션

  1. @Entity: 해당 클래스가 JPA 엔티티임을 나타냅니다. 이 클래스는 데이터베이스 테이블에 매핑됩니다.
  1. @Table: 엔티티가 매핑될 데이터베이스 테이블 이름을 지정합니다.
  1. @Id: 엔티티의 기본 키(primary key)를 설정합니다.
  1. @GeneratedValue: 기본 키의 값을 자동으로 생성하는 방법을 설정합니다. (예: GenerationType.IDENTITY)
  1. @Column: 엔티티 클래스의 필드를 데이터베이스의 특정 컬럼에 매핑합니다.
  1. @OneToOne, @OneToMany, @ManyToOne, @ManyToMany: 엔티티 간의 관계를 정의합니다. 1:1, 1, N:1, N관계를 표현하는 데 사용됩니다.
Share article

p4rksk