JPA의 주요 요소들:
JPA의 완전한 기능을 활용하려면 아래의 요소들이 모두 사용되어야 합니다.
- 엔티티(Entity): 자바 객체와 데이터베이스 테이블을 매핑하는 클래스. JPA는 엔티티를 통해 데이터베이스 테이블을 관리합니다.
@Entity
,@Table
,@Id
등의 어노테이션을 통해 자바 클래스와 테이블을 매핑합니다.
- JPQL (Java Persistence Query Language): 데이터베이스 테이블이 아닌, 엔티티를 기준으로 쿼리를 작성하는 언어. 객체 지향적인 쿼리를 통해 JPA의 추상화된 데이터 접근을 가능하게 합니다.
- 예:
SELECT u FROM User u WHERE u.name = :name
- 영속성 컨텍스트(Persistence Context): 엔티티의 상태를 관리하고, 엔티티와 데이터베이스 간의 상호작용을 투명하게 처리하는 컨텍스트. 이를 통해 데이터베이스와 자바 객체 간의 상태 동기화가 이루어집니다.
EntityManager
를 통해 엔티티 객체를 영속성 컨텍스트에 추가하거나 조회, 삭제합니다.
- 트랜잭션 관리: 데이터베이스의 일관성을 유지하기 위해, 트랜잭션을 통해 작업의 원자성을 보장합니다.
JPA의 주요 어노테이션
- @Entity: 해당 클래스가 JPA 엔티티임을 나타냅니다. 이 클래스는 데이터베이스 테이블에 매핑됩니다.
- @Table: 엔티티가 매핑될 데이터베이스 테이블 이름을 지정합니다.
- @Id: 엔티티의 기본 키(primary key)를 설정합니다.
- @GeneratedValue: 기본 키의 값을 자동으로 생성하는 방법을 설정합니다. (예:
GenerationType.IDENTITY
)
- @Column: 엔티티 클래스의 필드를 데이터베이스의 특정 컬럼에 매핑합니다.
- @OneToOne, @OneToMany, @ManyToOne, @ManyToMany: 엔티티 간의 관계를 정의합니다. 1:1, 1, N:1, N관계를 표현하는 데 사용됩니다.
Share article