ecsimsw
JPA / 필드와 컬럼 매핑 본문
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다.
필드와 컬럼 매핑
데이터 스키마 자동 생산
- DDL을 어플리케이션 실행 시점에서 자동으로 생성하도록 할 수 있다.
- 테이블 중심 -> 객체 중심
- DB에 맞는 적절한 DDL 생성
- 이렇게 자동으로 생성된 DDL은 개발에서만 사용하는 것이 바람직하다. 운영에서 사용해선 안된다.
사용 방법
- persistence / property에서 hbm2ddl.auto의 value 조정
<property name="hibernate.hbm2ddl.auto" value="create"/>
*DML, DDL, DCL
DML : Select, Insert, Update, Delete
DDL : Create, Alter, Drop, Rename
DCL : Grant, Revoke
매핑 어노테이션
- 필드와 컬럼을 매핑하는데 사용되는 어노테이션 정리
@Column : name, nullable, insertable 등의 옵션을 컬럼에 적용
@Enumerated : Enum 타입 사용 (EnumType.String 사용을 권장)
@Temporal : 날짜 타입 사용
@Lob : 데이터가 너무 길 때 사용 (String Clob, byte[]는 Blob으로 자동 매핑)
@Transient : DB에 저장하지 않는 필드
- EnumType : Enumerated의 기본 EnumType은 Ordinal인데, 이는 컬럼이 추가되어 순서가 바뀐다면 컬럼 구분이 뒤섞이므로, EnumType.String으로 한다.
사용 예시
@Entity
@Getter @Setter
public class Member {
@Id
private Long id;
@Column(nullable = false, insertable = false, length=20)
private String name;
@Enumerated(EnumType.STRING)
private memberType memberType;
@Column(name ="AGE_member")
private Long age;
}
create table Member (
id bigint not null,
AGE_member bigint,
memberType varchar(255),
name varchar(20) not null,
primary key (id)
)
'Database > JPA, ORM' 카테고리의 다른 글
JPA / 연관관계 매핑 / 양방향 매핑 / MappedBy (2) | 2020.06.26 |
---|---|
JPA / 연관 관계 매핑 / 단방향 매핑 (0) | 2020.06.26 |
JPA / 기본 키 매핑 (0) | 2020.06.26 |
JPA / EntitiyManager (0) | 2020.06.25 |
JPA / 객체를 컬렉션을 저장하듯 DB에 저장할 순 없을까 / 김영한 (0) | 2020.06.24 |
Comments