在我的SQL服务器,现场DATE保存在浮点格式(ES:DATADOC = 42155
)铸造领域
我要导入MySQL数据库作为DATETIME领域。 我尝试的SQL服务器上投领域与此查询:
SELECT CAST(DATDOC as DATETIME) -2 FROM FATTURE where id=25460;
,结果是正确的。
现在,我想它在JPA查询翻译:
TypedQuery<DateTime> convFattura = emI24.createQuery(" SELECT CAST(dataFattura as DATETIME) -2 FROM FatturaI24 f where f.id = :idFattura", DateTime.class);
但我得到这个错误:
09-06-2015 14:32:00 ERROR: org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
java.lang.NullPointerException
at org.hibernate.dialect.function.CastFunction.render(CastFunction.java:55)
at org.hibernate.hql.internal.ast.SqlGenerator.endFunctionTemplate(SqlGenerator.java:220)
at org.hibernate.hql.internal.antlr.SqlGeneratorBase.methodCall(SqlGeneratorBase.java:2326)
at org.hibernate.hql.internal.antlr.SqlGeneratorBase.simpleExpr(SqlGeneratorBase.java:2681)
at org.hibernate.hql.internal.antlr.SqlGeneratorBase.expr(SqlGeneratorBase.java:1476)
什么是DATETIME科协的正确语法?
任何想法?
什么是“-2”?你想减去2天吗?几个月?要么 ???? –
@RavinderReddy天,以这种方式我获得了正确的traslate(我已经验证了这一点) – PaolaG
CAST是无效的JPQL。您可以使用JPQL标准“FUNCTION”(在JPA 2.1中)使用SQL函数“CAST” –