티스토리 뷰
Spring/Spring Boot(스프링 부트)
Spring Data Jpa에서 LocalDateTime이용해서 자동으로 createdAt만들기
KyeongRok Kim 2018. 6. 8. 10:58Spring Data Jpa에서 LocalDateTime이용해서 자동으로 createdAt만들기
개요
쇼핑몰에서 사용자가 물건을 구매 한다고 했을 때 언제 구매를 했는지 그리고 결제를 했다면 언제 결제를 했는지 등 날짜, 시간에 관한 정보가 꼭 필요한 table들이 있습니다. 여기에서 트렌젝션이 발생한 날짜와 시간을 기록하게 하고 싶을 때 아래와 같이 Object를 만들어 주면 날짜를 현재 시간으로 만들어서 기록 할 수 있습니다.
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDateTime;
@Data
@Entity
public class Salary {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private long userId;
private String userName;
private double salary;
private LocalDateTime createdAt;
public Salary(long userId, String userName, double salary) {
this.userId = userId;
this.userName = userName;
this.salary = salary;
}
@PrePersist
public void createdAt() {
this.createdAt = LocalDateTime.now();
}
}
사용한 버젼은 Spring Boot 2.0.2이고 hibernate는 같이 포함 되어 있는 5.2버젼입니다.
이게 낮은 버젼에서는 Jpa가 자바 1.8에서 나온 LocalDateTime을 지원하지 않아서 컨버터 같은걸 따로 만들어서 어노테이션을 붙여줘야 했는데 그냥 하니까 됩니다.
위에 18번줄에 그냥 다른 처리를 하지 않고 그냥 놔뒀는데 DB에 잘 들어갑니다.
그리고 createdAt을 만들 때 @PrePersist를 붙여놓으면 db에 넣을때 저 어노테이션이 붙은 로직을 타기 때문에 날짜가 만들어집니다.
MySql에 붙였고 MySql의 created_at의 Type은 DATETIME으로 정해집니다.
end.
728x90
'Spring > Spring Boot(스프링 부트)' 카테고리의 다른 글
aws eb에서 spring boot안뜰 때 (0) | 2018.06.27 |
---|---|
Spring Boot Scheduler Cron(크론) (1) | 2018.06.08 |
spring boot 실시간 hot deploy하기 (0) | 2018.02.05 |
@SpringBootTest와 @DataJpaTest 차이점 (0) | 2017.07.05 |
Spring Data Jpa @ManyToOne 양방향 Mapping하기 (5) | 2017.06.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 도커티슈박스
- Linux
- docker container case
- Sh
- 도커티슈케이스
- 도커컨테이너
- docker container
- 도커각티슈박스
- 도커각티슈케이스
- docker container tissue box
- 싱가폴
- docker container tissue
- 개발자
- shellscript
- docker container whale
- 이직
- 2017 티스토리 결산
- vim
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함