테이블과 매핑할 클래스 필수 지정
속성 | 기능 | 기본값 |
---|---|---|
name | JPA에서 사용할 엔티티 이름 | 클래스 이름 |
엔티티와 매핑할 테이블 지정
속성 | 기능 | 기본값 |
---|---|---|
name | 매핑할 테이블 이름 | 엔티티 이름 |
catalog | catalog 기능이 있는 DB에 catalog 매핑 | |
schema | schema 기능이 있는 DB에 schema 매핑 | |
uniqueConstraints(DDL) | DDL 생성 시 uniqueConstraints 생성 |
필드와 매핑할 컬럼 지정
속성 | 기능 | 기본값 |
---|---|---|
name | 매핑할 컬럼 이름 | 필드 이름 |
nullable(DDL) | null값 허용 여부 | true |
unique(DDL) | 한 컬럼에 uniqueConstraints | |
columnDefinition(DDL) | DB 컬럼 정보 직접 지정 | 자바 타입 + 방언 정보를 사용해 적절히 생성 |
length(DDL) | String 길이 제약 조건 | 255 |
table | 매핑할 테이블 이름 | 기본 엔티티 테이블 |
cf.) 이름 매핑 전략: 자바의 Camel 표기법을 DB의 언더스코어(_) 구분법으로 자동 매핑
<property name="hibernate.ejb.naming_strategy"
value="org.hibernate.cfg.ImprovedNamingStrategy" />
자바 enum 타입 매핑
속성 | 기능 | 기본값 |
---|---|---|
value | - EnumType.ORDINAL: 순서 (숫자) - EnumType.String: 이름 (문자) | EnumType.ORDINAL |
날짜(java.util.Date
, java.util.Calendar
) 타입 매핑
속성 | 기능 | 기본값 |
---|---|---|
value | - TemporalType.DATE - TemporalType.TIME - TemporalType.TIMESTAMP | 필수 지정 필요 |
매핑하지 않고 객체에 임시로 보관만 하는 필드
<property name="hibernate.id.new_generator_mappings" value="true" />
@Id
)em.persist()로 엔티티 저장 전 기본 키 직접 할당
@Id
+ @GeneratedValue
)@GeneratedValue(strategy = GenerationType.IDENTITY)
JPA가 엔티티에 접근하는 방식
접근 방식 | 기능 |
---|---|
AccessType.PROPERTY | Getter로 접근 |
AccessType.FIELD | 필드에 직접 접근 (private 무관) |