1 분 소요

JPA 주요 개념

JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스 관리를 쉽게 할 수 있도록 도와주는 자바 표준 인터페이스입니다. JPA는 객체 관계 매핑(ORM: Object-Relational Mapping) 기술을 사용하여 자바 객체와 데이터베이스 테이블 간의 매핑을 정의하고 관리합니다. 이를 통해 개발자는 데이터베이스와의 상호 작용을 자바 객체를 통해 수행할 수 있습니다. JPA의 주요 개념과 구성 요소는 다음과 같습니다: 주요 개념

  1. 엔티티(Entity):
    • 데이터베이스 테이블에 매핑되는 자바 클래스입니다. 각 인스턴스는 데이터베이스의 행(row)에 해당합니다.
    • 예시:java

코드 복사
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // getters and setters } 


  2. 엔티티 매니저(EntityManager):
    • 엔티티의 생명주기(생성, 읽기, 업데이트, 삭제)를 관리하는 인터페이스입니다. EntityManager를 통해 데이터베이스에 쿼리를 수행하고 엔티티를 관리할 수 있습니다.
    • 예시:java

코드 복사
EntityManagerFactory emf = Persistence.createEntityManagerFactory(“my-persistence-unit”); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); User user = new User(); user.setName(“John Doe”); user.setEmail(“john.doe@example.com”); em.persist(user); em.getTransaction().commit(); em.close(); 


  3. JPQL(Java Persistence Query Language):
    • 엔티티 객체를 대상으로 쿼리를 작성하는 객체 지향 쿼리 언어입니다. SQL과 비슷하지만, 데이터베이스 테이블이 아닌 엔티티를 대상으로 작동합니다.
    • 예시:java

코드 복사
List users = em.createQuery("SELECT u FROM User u WHERE u.name = :name", User.class) .setParameter("name", "John Doe") .getResultList(); 

 주요 어노테이션
  4. @Entity: 클래스가 JPA 엔티티임을 나타냅니다.
  5. @Id: 엔티티의 기본 키 필드를 지정합니다.
  6. @GeneratedValue: 기본 키 생성 전략을 지정합니다.
  7. @Column: 필드와 데이터베이스 열 간의 매핑을 지정합니다.
  8. @Table: 엔티티와 매핑될 데이터베이스 테이블을 지정합니다.
  9. @OneToOne, @OneToMany, @ManyToOne, @ManyToMany: 엔티티 간의 관계를 지정합니다. 장점
    • 데이터베이스 독립성: JPA를 사용하면 데이터베이스 종속성을 줄일 수 있어, 특정 데이터베이스에 의존하지 않고 애플리케이션을 개발할 수 있습니다.
    • 생산성 향상: 복잡한 SQL 쿼리를 작성하지 않아도 되므로 개발 생산성이 향상됩니다.
    • 유지보수 용이성: 객체 지향적인 접근 방식을 사용하여 코드의 가독성과 유지보수성을 높일 수 있습니다. JPA는 Hibernate, EclipseLink, OpenJPA와 같은 여러 구현체가 있으며, 이러한 구현체를 통해 JPA 표준을 준수하는 ORM 기능을 제공합니다.

태그:

카테고리:

업데이트:

댓글남기기