<property name="hibernate.hbm2ddl.auto" value=""/>
→ 애플리케이션 실행 시점에 데이터베이스 테이블 동작 설정!
value에 들어갈 수 있는 값
create: 기본 테이블 삭제 후 다시 생성 (DROP + CREATE)
create-drop: create와 동일하나 종료시점에 테이블 DROP
update: 변경분만 반영 (운영 DB에는 사용하면 안된다.)
validate: 엔티티와 테이블이 정상 매핑되었는지만 확인한다.
none: 사용하지 않는다.
운영장비에는 절대 create, create-drop, update 사용 x
추천 value
개발 초기 단계 : create 또는 update
테스트 서버 : update 또는 validate
스테이징, 운영 서버 : validate 또는 none
@Column 가장 많이 사용됨
(name="USERNAME") → 실제 DB의 컬럼 명(필드와 매핑할 테이블의 컬럼 이름)
(length= 20) → 길이를 20자로 제한한다.
(nullable= false/true) → false= not null, true = null
@Id
private Long id;
@Column(length = 20, name="USERNAME",nullable=true)
private String name;
@Temporal 날짜타입 매핑
(TemporalType.DATE) 날짜
(TemporalType.TIME) 시간
(TemporalType.TIMESTAMP) 날짜와 시간
set해줄 때는 값에 new Date() 를 해주면 자동으로 시간, 날짜, 날짜와시간 등이 알맞게 입력된다.
java.util.Date를 import할 것!
@Temporal(TemporalType.TIME)
private Date time;
@Temporal(TemporalType.DATE)
private Date date;
@Temporal(TemporalType.TIMESTAMP)
private Date ts;
/***********실제 main에서 사용 예시*************/
Member member = new Member();
member.setDate(new Date());
member.setTime(new Date());
member.setTs(new Date());
DATE 컬럼에는 년-월-일 , TIME 컬럼에는 해당 시:분:초, TS컬러멩는 DATE+TIME 이 저장된 모습을 볼 수 있다.
@Enumerated 열거형매핑
(EnumType.ORDINAL) 기본값: 순서를 저장
(EnumType.STRING) 열거형 이름을 그대로 저장
/*********ENUM CLASS***********/
public enum MemberType {
USER, ADMIN
}
/*********ENTITY***********/
@Enumerated(EnumType.STRING) //꼭 StringType으로 저장. default 값이 index처럼 들어감
MemberType memberType;
/**********MAIN************/
member.setMemberType(MemberType.ADMIN);
@Transient 해당 필드는 매핑하지 않는다.
애플리케이션에서 DB에는 저장하지 않지만, 애플리케이션에서는 사용하는 필드
@Lob CLOB, BLOB 매핑 시 사용
- CLOB: String, char[], java.sql.CLOB
- BLOB: byte[], java.sql.BLOB
사용시에는 그냥 @Lob해주면 됨
@GeneratedValue(strategy = GenerationType.?)
-Id(직접매핑)
1. IDENTITY: 데이터베이스에 위임, MYSQL
2. SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE
@SequenceGenerator 필요
3. TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용
@TableGenerator 필요
4. AUTO: 방언에 따라 자동 지정, 기본 값
[JPA_Spring&Maven] JPA사용을 위한 persistence xml 설정 및 EntityManagerFactory create 에러 해결 (0) | 2021.05.19 |
---|