📌 JPA (Java Persistence API)
- 애플리케이션과 JDBC 사이에서 동작
- JPA를 사용하면 DB 연결 과정 자동으로 처리해줌
- 객체 통해 간접적으로 DB 데이터 다룰 수 있어 쉽게 DB 작업 처리 가능
📌 Entity
- JPA에서 관리되는 클래스, 즉 객체!
- DB 테이블과 매핑되어 JPA에 의해 관리된다
@Entity
@Table(name = "memo")
public class Memo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username", nullable = false, unique = true)
private String username;
@Column(name = "contents", nullable = false, length = 500)
private String contents;
}
📌 영속성 컨텍스트
- Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간
- Entity Manager를 통해 관리되며, Entity의 상태 변화 추적하고 DB와의 동기화 책임진다
EntityManagerFactory emf = Persistence.createEntityManagerFactory("example-unit");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Author author = new Author();
author.setName("John Doe");
em.persist(author);
Author foundAuthor = em.find(Author.class, author.getId());
foundAuthor.setName("Jane Doe");
em.getTransaction().commit();
em.close();
emf.close();