본문 바로가기

Development/Web & Server

[Hibernate] Date 검색

Date를 기준으로 검색이 필요해서 아래와 같이 검색을 작성하여 검색을 하였다.


.createQuery("FROM Menu menu WHERE :startDate <= menu.date AND menu.date <= :endDate")

.setTimestamp("startDate", startDate)

.setDate("endDate", endDate);



하지만 오늘날짜 데이터만 뽑아서 사용하기 위해서 아래와 같이 startDate 와 endDate를 작성하였다.

   

   final Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

final Date startDate = calendar.getTime();


calendar.add(Calendar.DATE, 1);

calendar.add(Calendar.SECOND, -1);

final Date endDate = calendar.getTime();


하지만 어째서 인지 검색을 못하였다....

테이블의 구조는 아래와 같고 date는 timestamp이다.




그래서 timestamp로 변경하여 검색해보기 로 하였다. 그랬더니 오늘날짜 데이터도 정확히 검색을 잘하였다.


.createQuery("FROM Menu menu WHERE :startDate <= menu.date AND menu.date <= :endDate")

 .setTimestamp("startDate", new Timestamp(startDate.getTime()))

.setTimestamp("endDate", new Timestamp(endDate.getTime()));