티스토리 뷰
EntityManager
EntityManager는 JPA의 인터페이스로, 엔티티 관리 및 데이터베이스 작업을 처리합니다.
엔티티 생성, 조회, 수정, 삭제
트랜잭션 관리
엔티티 관계 관리
JPQL(Java Persistence Query Language) 쿼리 실행
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
// 엔티티 클래스
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int price;
}
public class ProductService {
private EntityManager em;
public ProductService() {
// EntityManagerFactory 생성
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnit");
em = emf.createEntityManager();
}
public void createProduct(String name, int price) {
// 트랜잭션 시작
em.getTransaction().begin();
// 엔티티 생성 및 저장
Product product = new Product();
product.setName(name);
product.setPrice(price);
em.persist(product);
// 트랜잭션 커밋
em.getTransaction().commit();
}
public Product findProduct(Long id) {
// 엔티티 조회
return em.find(Product.class, id);
}
}
EntityManager를 사용하여 Product 엔티티를 생성, 저장, 조회하는 방법을 보여줍니다.
EntityManager를 사용하는 이유로
엔티티 관리: EntityManager는 엔티티의 생성, 조회, 수정, 삭제 등의 작업을 처리합니다.
이를 통해 개발자는 데이터베이스 작업에 대한 복잡한 로직을 작성할 필요가 없습니다.
트랜잭션 관리: EntityManager는 데이터베이스 트랜잭션을 관리합니다.
이를 통해 데이터의 일관성과 무결성을 보장할 수 있습니다.
엔티티 관계 관리: EntityManager는 엔티티 간의 관계(OneToOne, OneToMany, ManyToOne, ManyToMany)를 관리합니다. 이를 통해 복잡한 데이터 모델을 쉽게 구현할 수 있습니다.
JPQL 쿼리 실행: EntityManager는 JPQL(Java Persistence Query Language)을 사용하여 데이터베이스 쿼리를 실행할 수 있습니다. 이를 통해 SQL 쿼리를 직접 작성할 필요 없이 객체 지향적인 방식으로 데이터를 조회할 수 있습니다.
*JPQL(Java Persistence Query Language)
JPA에서 사용되는 객체 지향 쿼리 언어입니다.
JPQL은 SQL과 유사한 구문을 가지지만, 테이블과 열 대신 엔티티와 속성을 사용합니다.
SQL과 유사한 문법으로 데이터를 조회할 수 있으며, 객체 지향적인 방식으로 코드를 작성할 수 있습니다.