목표 : 현재시간 기준으로 일정시간이 안에 생성된 데이터 찾기
아래 DB에서 현재 시간과 비교해 조건에 맞는 데이터를 가져오는 쿼리를 만든 후
JPA로 변환 하고자 합니다!
(MySQL Workbench, MariaDB 사용했습니다.)
처음 만드는 쿼리라 만드는데에 시간을 좀 썼습니다...
select * from 테이블명
WHERE date(date_created) >= date(subdate(now(), INTERVAL 1 MINUTE))
And date(date_created) <= date(now())order by date_created asc;
(MINUTE -> DAY, HOUR 등등 대체 가능)
참조 블로그 : https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=fromyongsik&logNo=40122605914
★where 뒤에 date로 감싸는건 성능이 안좋다고 하니 다른 방법을 찾으면 수정 또는 추가로 올리도록 하겠습니다.
★★추가★★
// date로 감싸지 않는 방법!!
select * from room_master
WHERE date_created >= DATE_ADD(now(),INTERVAL -5 MINUTE)
And date_created <= NOW()
order by date_created asc;
쿼리 실행 후
오! 성공했다!!
그럼 이제 이걸 JPA로 구현해보자!!
findByDateCreatedGreaterThanEqual
AndDateCreatedLessThanEqualAnd
MemId(now().minusMinutes(10) , now(),test_ID);
findBy의 리턴타입은 Entity이고 해당하는 조건에 만족한다면 DB에서 해당하는 정보를 담을 겁니다.
*쿼리 해석
DateCreated Greater Than Equal → DateCreated(생성된 날짜) >= '첫번째 파라미터'
DateCreated Less Than Equal → DateCreated(생성된 날짜) <= '두번째 파라미터'
저는 이렇게 해서 '현재시간 기준으로 일정시간이 안에 생성된 데이터 찾기' 를 구현했습니다.
끝!!
'JPA & SQL' 카테고리의 다른 글
[MySQL Workbench] 개행문자 넣는 방법 (feat. MariaDB) (0) | 2022.11.24 |
---|---|
[MySQL Workbench] 테이블에 Null 값 넣기 (0) | 2022.10.05 |
[JPA&SQL] QueryDSL - 적용하기 (0) | 2022.08.10 |
[JPA] JPA 반환타입 정리 (0) | 2022.07.21 |
[MySQL] MySQL 데이터 타입과 Java 데이터 타입 비교/매칭 (4) | 2022.07.14 |