Oracle 데이터베이스를 사용하여 HQL 쿼리에서 현재 날짜를 사용하려면 어떻게 해야 합니까?
Hibernate 3과 Oracle 10을 사용하여 이 쿼리를 작성하려고 합니다.
from Alert alert
where alert.expiration > current_date()
order by alert.priority, alert.updated, alert.name
다음과 같은 SQL을 만듭니다.
Hibernate: select alert0_.ANNOUNCEMENTS_ID as ANNOUNCE1_1_, alert0_.ANNOUNCEMENT
S_NAME as ANNOUNCE2_1_, alert0_.ANNOUNCEMENTS_PRIORITY as ANNOUNCE3_1_, alert0_.
ANNOUNCEMENTS_EXPIRATION as ANNOUNCE4_1_, alert0_.ANNOUNCEMENTS_UPDATE_DATE as A
NNOUNCE5_1_ from NYC311_ANNOUNCEMENTS alert0_ where (alert0_.ANNOUNCEMENTS_EXPIR
ATION>current_date()) order by alert0_.ANNOUNCEMENTS_PRIORITY , alert0_.ANNOUNC
EMENTS_UPDATE_DATE , alert0_.ANNOUNCEMENTS_NAME
분명히 완벽하게 균형 잡힌 괄호가 있을 때 "오른쪽 괄호 누락"과 같은 모든 이상한 오류가 발생합니다.
오라클이 왜 이걸 보고 겁을 먹는거지?HQL 쿼리를 쓰는 더 좋은 방법이 있나요?
그래야 하지 않을까?current_date?
하이버네이트는 그것을 적절한 방언으로 번역할 것이다.
실제 "Hibernate will translate this to that" 레퍼런스 매뉴얼은 찾을 수 없지만 일반적으로 HQL Expressions for Hibernate 4.3에서 확인할 수 있습니다.
다음으로 Java Persistence API 2.0(JPA) 사양이 있습니다.JPA는 Java Persistence Query Language(JPQL)의 표현과 그 의미를 정의합니다.current_date:
4.6.17.2.3 Datetime Functions_datetime:= CURRENT_TIME | CURRENT_TIMESTAMP Datetime 함수는 데이터베이스 서버의 현재 날짜, 시간 및 타임스탬프 값을 반환합니다.
이current_date()휴지 상태 기능?
나는 사용할 것이다.sysdate대신.다음과 같습니다.
where alert.expiration > sysdate
또는 하루 중 시간을 무시하려면:
where alert.expiration > trunc(sysdate)
언급URL : https://stackoverflow.com/questions/513317/how-do-i-use-the-current-date-in-an-hql-query-with-an-oracle-database
'programing' 카테고리의 다른 글
| Wordpress 프로젝트에 .gitignore 파일에서 가장 적합한 설정은 무엇입니까? (0) | 2023.03.26 |
|---|---|
| Angular에서 쿠키의 유효기간을 설정하는 방법JS (0) | 2023.03.21 |
| 사용자 지정 게시 유형의 분류법 값을 가져오는 방법 (0) | 2023.03.21 |
| Gson - 자동 따옴표(")가 이스케이프됩니까? (0) | 2023.03.21 |
| 액션 리덕스 후 리액트라우터 리다이렉트 (0) | 2023.03.21 |