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

Grails执行查询HQL-无法定位参数

萧玮
2023-03-14

我很少在查询中使用use ecuteQuery,因为有时我遇到这个错误,我不知道如何修复它,这是我的代码:

use(TimeCategory) {
        def referenceDate = new Date() - 101.year
        println '============================= '+referenceDate
            def cancelledSlots = RegistrantTestingCenterExamSchedule.executeQuery("""select rt.registrant.emailAddress from RegistrantTestingCenterExamSchedule as rt 
                where rt.registrant.firstName in(select i.firstName from Individual i) and rt.registrant.lastName in(select i.lastName from Individual i) and 
                rt.registrant.middleName in(select i.middleName from Individual i) and rt.registrant.birthDate in(select i.birthDate from Individual i) or 
                rt.registrant.seniorCitizen = false or rt.registrant.birthDate >=:refDate""",[refDate: referenceDate])            
}

我得到了这个错误消息:找不到命名参数[refDate]我试图删除不需要与我声明的参数(和rt . register . birth date)进行比较的条件

共有1个答案

澹台欣怿
2023-03-14

根据手册,三重引用的多行字符串不适用于 HQL(请参阅多行查询部分)。尝试使用行继续符:

executeQuery("select rt.registrant.emailAddress \
from RegistrantTestingCenterExamSchedule as rt \
.... \
or rt.registrant.birthDate >= :refDate", [refDate : referenceDate])
 类似资料:
  • 我正在编写一个util函数,以根据传递给我的任何HQL获取总记录计数,而不加载所有数据。传入的HQL可能非常复杂,有大量的选择、联接、条件、分组和排序。为此,我想用中选择计数(*)来包装查询。我发现,这在HQL中是不可能的,因为Hibernate不允许在FROM元素中进行子查询。现在,我正在尝试将这个随机的HQL查询转换为一个可执行的SQL语句,而不内联参数值,该查询可能具有一些命名参数(其中一些

  • 使用执行hql查询时出现错误 我的疑问是 堆栈跟踪是

  • 问题内容: 我正在使用hibernate3.6.7进行映射。我将连接部分设置为静态。我需要服务程序永远运行,另一个服务将调用该服务的某些方法来查询数据库。当我让该服务运行时,第一天工作良好,但是第二天我调用它时,它给出了: 似乎连接已关闭。有人可以给我一些建议吗? 非常感谢你:) 问题答案: 听起来好像数据库已关闭连接或某个网络设备已终止套接字。您可以通过多种方法来解决此问题: 您可以经常在连接上

  • 问题内容: 我正在使用Struts2&Hibernate并在使用字符串搜索数据时出现以下错误,但是在使用数字搜索时对我有用。我从豆类和豆类中的字符串类型的已定义的属性中获取此值。 下面我提供代码: 豆类: 对应: 错误: 问题答案: 之所以引发,是因为Hibernate生成的SQL查询的SQL语法错误。构建查询的方式是错误的,不应将值(尤其是字符串值)连接到结果查询,因为此类代码容易受到SQL注入

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 我知道要冬眠。我有一个sql语句 我尝试用createCriteria和HQL实现它。 HQL: 问题是,此HQL的执行时间延长了10倍。并执行许多不必要的查询。我尝试使用注释字符串进行转换,它有了一些改进,但仍然比createCriteria查询长5倍,此外,我无法进行此转换 <代码>列表 版本数据防御