@Entity @Entity 어노테이션이 붙은 클래스는 JPA가 관리하는 엔티티이다 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션이 필수다 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X name 속성을 사용하면 JPA에서 사용할 엔티티 이름을 지정할 수 있다. 기본값은 클래스 이름을 그대로 사용한다 예시: @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String name; Member(){}// 생략하면 ..
영속성 컨텍스트란? 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 뜻이다. 영속성 컨텍스트는 애플리케이션과 DB 사이에서 객체를 보관하는 가상의 DB 역할을 한다. 엔티티 매니저(EntityManager)를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리하게 된다. 엔티티 생명주기 비영속(new/transient) 상태 : 영속성 컨텍스트와 관계가 없는 상태 //객체를 생성한 상태(비영속) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 영속(managed) 상태 : 영속성 컨텍스트에 저장된 상태 //객체를 생성한 상태(비영속) Member member = n..
JPA(Java Persistent API)란? JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 뜻한다. ORM 기술이란? ORM 기술은 말 그대로 객체와 관계형 데이터 베이스를 매핑해 주는 기술이다. 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스대로 설계하고, ORM 프레임워크가 중간에서 매핑을 해준다. 더 자세한 내용은 다음을 참고) SQL Mapper 와 ORM 기술의 차이 Persistence Framework란? SQL Mapper와 ORM 기술에 대해 알아보기 전에 Persistence Framework에 대해 알아보자. 영속성(Persistence)은 프로그램이 종료되어도 데이터가 사라지지 않는 특성을 뜻한다. [그림 1]에서..