JPA

[JPA] @Temporal / @Lob / @Transient 속성

솔솔 2021. 7. 5. 11:15
반응형

@Temporal 날짜 타입 (java.util.Date, java.util.Calendar)을 매핑할 때 사용

 - DATE : 날짜 2020-07-05

 - TIME : 시간 10:50:11

 - TIMESTAMP : 날짜,시간 2020-07-05 10:50:11

 

** 지금은 사실 @Temporal이 필요 없다.. 자바8이 되면서 하이버네이트에서 LocalDate, LocalDateTime을 지원해주기 시작하였다.

@Temporal(TemporalType.TIMESTAMP) //날짜 Type -> DATE날짜/TIME시간/TIMESTAMP날짜시간
private Date createdDate; 
	
@Temporal(TemporalType.TIMESTAMP) 
private Date lastModifiedDate; 
	
private LocalDate testLocalDate; //년월
private LocalDateTime testLocalDateTime; //년월일

java.time.LocalDate / java.time.LocalDateTime 사용해도 무방

 

 

@Lob 데이터베이스 BLOB, CLOB 타입과 매핑

@Lob은 지정할 수 있는 속성이 없다.

매핑하는 필드 타입이 문자면 CLOB / 나머지는 BLOB으로 매핑한다.

CLOB : String, char[], java.sql.CLOB

BLOB : byte[], java.sql.BLOB

@Lob //db에 varchar2를 넘어서서 큰 값을 넣기 위한 작업
private String description;

 

 

@Transient 매핑을 하기 싫을 때 사용

- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용

- DB에 저장 및 조회 안됨

- 필드 매핑 X

@Transient // DB에는 안쓰고 메모리에서만 사용할때
private int tmp;

주로 DB에는 값을 저장안하고 데이터들의 sum 값이나 count 값 구할때 메모리에만 올려놓고 사용하기 위한 작업

 

 

 

인강으로 공부하면서 작성하는 글로 잘못된 정보가 있을 수도 있습니다! 잘못된 정보가 있을 시 댓글달아주세요 : 0

반응형