삽질 피하기
[삽질 피하기] Spring Boot 날짜 다루기
ozofweird
2021. 4. 10. 15:39
1. 날짜 다루기
1) Entity
Entity에서 날짜 어노테이션을 다루는 방법은 다음과 같다.
@Column
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate regDate;
@Column
@DateTimeFormat(pattern = "HH:mm:ss")
private LocalTime regTime;
@CreationTimestamp
@Column(name = "createdAt", nullable = false, updatable = false)
private LocalDate createdAt;
@UpdateTimestamp
@Column(name = "updatedAt", nullable = false)
private LocalDate updatedAt;
2) Controller
Controller에서 날짜 정보를 쿼리 스트링으로 받아오는 방법은 다음과 같다.
@GetMapping("")
public BaseResponse<?> findAllByIdAndRegDateBetween( ... (생략)
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
... (생략)
}
3) Service
Service에서 두 날짜 사이의 데이터를 가져오는 방법은 다음과 같다.
public List<?> findAllByIdAndRegDate(Long id, LocalDate startDate, LocalDate endDate) throws Exception {
try {
return Trepository.findAllByIdAndRegDateBetween(id, startDate, endDate).stream()
.map(Response::new)
.collect(Collectors.toList());
} catch (Exception exception) {
throw new BaseException(FAILED);
}
}
4) Repository
Repository에서 두 날짜 사이의 데이터를 가져오는 방법은 다음과 같다.
List<?> findAllByIdAndRegDateBetween(Long id, LocalDate startDate, LocalDate endDate);
728x90