我想在JPA中执行此查询.但是我在执行此查询时遇到错误.如何在JPA中使用Month(),Year()我们可以在本机SQL Query中使用它们.但是如何使用它?请帮帮我.谢谢!
select model from IptExchangeratelines model where model.iptExchangerate.id=:id and " +
" month(model.currencyExchangeDate)=:month and year(model.currencyExchangeDate)=:year
Run Code Online (Sandbox Code Playgroud)
Nay*_*kar 11
很少有JPA实现具有对日期/时间函数的内置支持.
的EclipseLink
EclipseLink支持EXTRACT,允许从日期/时间中提取任何数据库支持的日期/时间部分值.EXTRACT函数与数据库无关,但需要数据库支持.
EXTRACT(YEAR, model.currencyExchangeDate)
,但它需要EclipseLink 2.4.x.
FUNC允许从JPQL调用数据库函数.它允许调用JPQL中不直接支持的任何数据库函数.
要调用DB函数MyFunc(a, b, c)
使用FUNC('MyFunc', a, b, c)
.
您可以尝试FUNC('YEAR', currencyExchangeDate)
调用'YEAR'功能.
过冬
在HQL,你可以有日期功能YEAR(date)
,MONTH(date)
,DAY(date)
提取所需的详细信息.支持的其他时间功能HOUR(date)
,MINUTE(date)
,SECOND(date)
.
Criteria API
CriteriaBuilder #function():为执行数据库函数创建一个表达式.
CriteriaQuery<IptExchangeratelines> cq = cb.createQuery(IptExchangeratelines.class);
Root<IptExchangeratelines> exRateLine = cq.from(IptExchangeratelines.class);
cq.where(cb.equal(cb.function("year", Integer.class,
exRateLine.get(exRateLine_.currencyExchangeDate)), year)
.and(cb.equal(cb.function("month", Integer.class,
exRateLine.get(exRateLine_.currencyExchangeDate)), month)));
归档时间: |
|
查看次数: |
18384 次 |
最近记录: |