当前位置: 首页 > 知识库问答 >
问题:

找不到命名参数

宫俊远
2023-03-14

我有以下查询:

<named-native-query name="GET_Objects_REPORT">
    <query>
        <![CDATA[
               SELECT *
               FROM KAP.VC
               JOIN KAP.V ON VC.ID = V.ID
               JOIN KAP.VI ON VC.ID = VI.ID AND (VI."DATETIME" BETWEEN :startDate and :endDate)
         ]]>
    </query>
</named-native-query>               

执行查询时,我得到以下异常:

java.lang.非法参数异常: 组织.Hibernate.查询参数异常: 找不到命名参数 [startDate]

public List<Object[]> getAllObjects(final Date startDate, final Date endDate) {
    final Query q = em.createNativeQuery("GET_Objects_REPORT");
    q.setParameter("startDate", startDate);
    q.setParameter("endDate", endDate);

    return q.getResultList();
}

您能告诉我的查询有什么问题吗?

共有2个答案

后凯捷
2023-03-14

这并不能回答为什么在XML文件中找不到查询的问题(orm.XML?根据它的模式它有效吗?),但是,您可以将命名查询(本机查询或非本机查询)放在它们所属的实体中(这不是要求),而不是放在<code>orm中。xml或persistence.xml

@Entity
@NamedNativeQueries({
@NamedNativeQuery(name="Foobar", query = "...")
})
public class MyEntity {

}

(顺便说一句,对不起我之前(删除)的回答。它不中肯,而且是错误的)。

冉子石
2023-03-14

您的SQL查询是GET_Objects_REPORT(这不是有效的SQL),没有startDate参数。

您需要使用em.createNamedQuery(“GET_Objects_REPORT”)

 类似资料:
  • 我的项目设置是Spring MVC,Hibernate 3.2.x,在 MySQL 数据库上 收到以下错误: org.hibernate.QueryParameterException:无法找到命名参数电子邮件 方法#1: 方法#2: 错误: java.lang.IllegalArgumentException:参数email不作为命名参数存在于[fromcom.cmgr.beans.UserAc

  • 请找到我使用过的代码。以下HQL查询失败,说明: 找不到命名参数 [模板 Id] 但是模板 Id 存在于我的模型类中。 请帮助解决问题或可能导致此类错误的原因: 模型文件 请帮助解决我的问题

  • 问题内容: 这个开始让我完全疯了… 我想使用Maven创建一个Glassfish客户端应用程序。 为此,我添加了必需的gf-client依赖项: 然后,想要联系运行在相同应用程序上的我的Glassfish服务器,我进行了常规查找: 不幸的是,这样做时,我得到的只是 经过一番检查后,我注意到该客户端应用程序的CLASSPATH中存在我的文件夹。并且,根据Eclipse代码查找,应该包含此jar 。但

  • 问题内容: 我想将JS应用程序发送到我的Google App。我创建了一个类,例如:。 Endpoint方法的定义如下: 当我运行API生成时,会发生此错误: 因此,我删除了注释。该API已生成,但显然我没有收到JS应用程序发送的参数。我的JavaScript是这样的: 如果不允许使用批注,该如何获取? 也许我的JavaScript错误? 问题答案: Google Cloud Enpoints 文

  • 在Visual Studio 2015专业版中打开我的项目时,我的所有视图(*. cshtml)中都有以下错误(以及更多)。 错误CS0246找不到类型或命名空间名称“系统”(您是否缺少使用指令或程序集引用?)严重性代码描述项目文件行 错误CS0518预定义类型“系统”。对象“”未定义或导入严重性代码描述项目文件行 错误CS0518预定义类型“系统”。字符串“”未定义或导入 我有这些参考资料: 我

  • 我已经创建了空的ASP.NET核心项目,我想在那里设置角。为此,我需要应用程序服务静态文件。所以我的startup.cs看起来是: 怎么了?