Hibernate jpql异常ORA-00932:不一致的数据类型:预期的二进制获取日期

Hibernate jpql异常ORA-00932:不一致的数据类型:预期的二进制获取日期,hibernate,jpa,spring-data-jpa,hql,jpql,Hibernate,Jpa,Spring Data Jpa,Hql,Jpql,我编写了以下jpql 从emp e中选择e.name,其中e.date=nvl:date,从emp e中选择maxdate,其中e.id=1 因此,从服务中,我将调用上面的jpql。 当我从服务传递日期值时,它应该使用给定的日期值运行jpql。如果我没有传递任何日期值,那么jpql应该使用maxdate运行 但获取不一致数据类型的异常 请帮忙 意见: 如果我将查询更改为: select e.name from emp e where e.date = :date 它运转良好。。但是当我使用n

我编写了以下jpql

从emp e中选择e.name,其中e.date=nvl:date,从emp e中选择maxdate,其中e.id=1

因此,从服务中,我将调用上面的jpql。 当我从服务传递日期值时,它应该使用给定的日期值运行jpql。如果我没有传递任何日期值,那么jpql应该使用maxdate运行

但获取不一致数据类型的异常

请帮忙

意见:

如果我将查询更改为:

 select e.name from emp e where e.date = :date

它运转良好。。但是当我使用nvl函数时,我得到了这个错误。

select和max之间缺少空格-这是一个输入错误吗?你是如何传递参数的?您能在问题中包含java代码吗?是的,这是一个输入错误。@queryselect e.name from emp e其中e.date=nvl:date,select maxdate from emp e其中e.id=1findemp@param这就是我的回购协议的日期。在服务层中,我将使用下面的代码findemp2012-12-12,但2012-12-12是一个字符串-您是否从中解析日期对象?否则,您的代码看起来很好。试着安慰一下,这可能会提供一些线索。