@Entity 해당 클래스를 DB테이블과 매핑
엔티티와 매핑할 테이블을 지정
property | description |
---|---|
name | 매핑할 테이블 이름 |
catalog | catalog 기능이 있는 DB에서 catalog 매핑 |
schema | schema 기능이 있는 DB에서 schema 매핑 |
uniqueContraints | DDL생성 시 Unique 제약조건 생성 ※ 스키마 자동생성 기능을 사용하여 DDL을 만들 때만 사용함. |
특정 속성을 기본키로 설정하는 어노테이션
@Id만 적을 경우 기본 키를 직접 부여해야함.
@GeneratedValue 어노테이션을 사용하면 기본값을 DB에서 자동으로 생성할 수 있음.
property | function |
---|---|
@GeneratedValue(strategy=GenerationType.IDENTITY) | 기본키 생성을 DB에 위임(MySQL) |
@GeneratedValue(strategy=GenerationType.SEQUENCE) | DB시퀀스를 사용하여 기본 키 할당(Oracle) |
@GeneratedValue(strategy=GenerationType.TABLE) | 키 생성 테이블 사용(모든 DB) |
@GeneratedValue(strategy=GenerationType.AUTO) | 선택된 DB에 따라 자동으로 전략선택 |
필드속성을 지정할 때 사용
property | description | default |
---|---|---|
name | 필드명을 지정 | 객체의 필드이름 |
insertable | 등록가능여부 | true |
updatable | 수정가능여부 | true |
nullable | DDL 생성 시 설정값에 따라 null가능 여부를 설정 | true |
unique | DDl 생성 시 간단하게 한 컬럼에 유니크 제약 조건 설정 | false |
columnDefinition | 테이블 컬럼 속성을 직접 설정 | - |
length | 문자길이 제약조건 설정 | 255 |
precision,scale | BigDeciaml, BigInteger 타입에서 사용 | 0,0 |
날짜 타입을 매핑할 때 사용
- LocalDate, LocalDateTime 사용 시 생략가능
자바 enum 타입을 매핑할 때 사용
이름 | description | default |
---|---|---|
value | EnumType.ORDINAL | EnumType.ORDINAL |
value | EnumType.String | EnumType.ORDINAL |
데이터베이스 BLOB, CLOB타입과 매핑
해당필드를 매핑하지 않음. (테이블과 연관없는 필드를 지정할 때 사용)
연관관계 매핑에 관하여 따로 정리하겠음.
JPA가 엔티티 데이터에 접근하는 방식을 지정
접근방식 | 기능 |
---|---|
AccessType.FIELD | 필드에 직접 접근, 필드 접근 권한이 private여도 접근 가능 |
AccessType.PROPERTY | getter를 통해 접근 |