@Entity
어노테이션을 필수로 가져야 한다.public
또는 protected
생성자)final
사용 Xfinal
클래스, enum
, interface
클래스 사용 Xcatalog
매핑schema
매핑DDL
생성 시에 유니크 제약조건 생성<property name="hibernate.hbm2ddl.auto" value="none" />
create, create-drop, update
옵션 등은 사용하지 않고 직접 데이터베이스를 조작하는 것이 좋다.
- 예시 : username이라는 이름의 열, 필수, 10자 초과 X
@Column(name = "username", nullable = false, length = 10)
- 예시 : 날짜 타입 매핑
@Temporal(TemporalType.TIMESTAMP)
- @Transient
- 필드 매핑 X
- 데이터베이스에 저장 X, 조회 X
- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
create
등)만 사용되고, JPA의 실행 로직에는 영향을 주지 않는다.
- 유니크 제약조건 추가 예시
@Table(uniqueConstraints ={ @UniqueConstraint(name="NAME_AGE_UNIQUE", columnNames={"NAME","AGE"})})
ORACLE(@SequenceGenerator)
@TableGenerator
@Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long id;
@Entity @Getter @Setter @SequenceGenerator( name = "MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", initialValue = 1, allocationSize = 1 ) public class Member { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER2_SEQ_GENERATOR") private Long id; }