@Entity 가 붙은 클래스는 엔티티라 하며 JPA가 관리한다
JPA 를 사용해 테이블과 매핑할 클래스는 필수로 붙여야한다.
주의
- 기본 생성자를 붙여야 생성이 된다. (파라미터가 없이 사용 / protected 사용 등)
- 저장할 필드에 final 사용하면 안된다.
@Entity(name="?")
엔티티와 매핑할 테이블을 지정한다.
@Entity
@Table(name = "ORDERS")
public class Order {...}
DDL을 애플리케이션 실행 시점에 자동으로 생성한다.
테이블 중심의 개발에서 객체 중심의 개발을 할 수 있게 된다.
데이터 베이스 방언
을 이용해 원하는 DB를 사용할 수 있다.
DB 초기화가 될 수 있기 떄문에 운영서버에서 사용하지 않는다.
(create,create-drop,update)
개발 초기에만 사용
테스트 서버는 Update,validate 사용
테이징과 운영 서버는 validate 또는 none
<property name="hibernate.hbm2ddl.auto" value="update" />
@Column(name:"ORDER_ID")
: 필드와 매핑할 테이블의 컬럼 이름@Enumerated(EnumType.STRING)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MEMBER_ID")
private Long id;
직접 할당할때 @Id만 사용한다.
자동 생성해준다
strategy = GenerationType.AUTO
: 방언에 따라 자동 지정된다(기본값)
AUTO
아닌 IDENTIFY