반응형
JPA 기본 개념과 활용 방법
JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 조작하고 관리하는 자바 ORM(Object-Relational Mapping) 기술입니다.
JPA란 무엇인가요?
JPA는 객체와 관계형 데이터베이스 간의 매핑을 통해 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터를 관리할 수 있는 기술입니다. 객체 지향적인 코드 작성을 통해 생산성을 향상시키고, 데이터베이스 종속성을 최소화하여 유지보수를 쉽게 할 수 있게 해줍니다.
JPA의 주요 개념
엔티티(Entity)
엔티티는 데이터베이스의 테이블과 매핑되는 자바 클래스입니다. @Entity 어노테이션을 사용하여 엔티티 클래스로 지정하며, 필드와 컬럼을 매핑하기 위한 어노테이션들을 사용합니다.
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;
// ...
}
관계(Relationship) 매핑
JPA를 사용하면 엔티티 간의 관계를 객체로 표현하고 매핑할 수 있습니다. 일대일, 일대다, 다대일, 다대다 관계를 정의하고 @OneToOne, @OneToMany, @ManyToOne, @ManyToMany 등의 어노테이션을 활용하여 관계를 설정합니다.
영속성 컨텍스트(Persistence Context)
영속성 컨텍스트는 JPA에서 엔티티의 상태를 관리하는 환경을 말합니다. 엔티티를 조회하거나 변경할 때 영속성 컨텍스트에 저장되며, 데이터베이스와의 동기화는 JPA가 관리합니다. 이를 통해 엔티티의 생명주기를 관리할 수 있습니다.
반응형
JPA 활용 방법
엔티티 생성과 저장
EntityManagerFactory emf = Persistence.createEntityManagerFactory("my-pu");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Product product = new Product();
product.setName("New Product");
product.setPrice(99.99);
em.persist(product);
em.getTransaction().commit();
JPQL 쿼리 작성
TypedQuery<Product> query = em.createQuery("SELECT p FROM Product p WHERE p.price > :price", Product.class);
query.setParameter("price", 50.0);
List<Product> expensiveProducts = query.getResultList();
관계 매핑 활용
@Entity
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "order")
private List<Product> products;
// ...
}
반응형
'컴퓨터 언어 > Java' 카테고리의 다른 글
JPA - 주요 엔티티 12가지 (0) | 2023.08.29 |
---|---|
JPA - 엔티티 매핑 (0) | 2023.08.29 |
Project Jigsaw 사용 방법 (0) | 2023.07.09 |
Stream (0) | 2023.07.06 |
Sliding Window 알고리즘 (0) | 2023.04.27 |