hibernate - GORM : hql query produces exception: could not resolve property

标签 hibernate grails grails-orm

晚上好,

我的数据库中有一个名为 Events 的表,它有两个字段:数据类型 Date 的 START_DATE 和 END_DATE。
我还创建了一个名为 Event 的域类,如下所示:

class Event{

    Date startDate
    Date endDate

    static mapping = {
        table 'events'
        startDate column: 'start_date'
        endDate column: 'end_date'
    }
}

然后我创建了一个 EventsService 查询数据库中两个日期之间开始和结束的事件。目前我正在尝试使用以下代码获取在两个日期之间开始的事件:
String hql = "select e from Event e where e.startDate >= :startDateMin and e.startDate <= :startDateMax"
params.put("startDateMin",filter.getStartDateMin())
params.put("startDateMax",filter.getStartDateMax())
def results = Event.executeQuery(hql,params,config)

filter 是我用来存储所有搜索条件的对象,而 config 是存储 sotring 和 paging 参数的映射。

如果我只是尝试减少所有事件,我将获得数据库中的所有事件但是如果我尝试执行上面的查询,那么我会得到这个异常:
Caused by: org.hibernate.QueryException: could not resolve property: startDate of: ipmt.modules.Event [select e from ipmt.modules.Event e where e.startDate >= :startDateMin and e.startDate <= :startDateMax] 

我已经尝试了一切,但我无法弄清楚问题所在。我的数据库是 OracleSQL。

最佳答案

不幸的是,你的建议没有奏效。但是,我设法通过将两个变量的名称完全更改为 eventStart 和 eventEnd 并将它们映射到表的列来使其工作。我不知道出了什么问题,试图在屏幕上打印类的所有属性以查看是否在运行时注入(inject)了同名的字段,我搜索了继承树但什么也没有。在我这样做之前,我曾尝试将数据库中的数据类型更改为 Timestamp 和各种奇怪的东西,但没有任何效果。因此,对于任何与 grails 2.2.1 有相同问题的人,首先尝试更改变量的名称。

不过感谢您的时间。

关于hibernate - GORM : hql query produces exception: could not resolve property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19864298/

相关文章:

hibernate - 在 Tomcat 中使用 Spring 通过 JMX 公开 Hibernate(缓存)统计信息

java - Hibernate 使用 where 子句中的连接列创建查询

java - JPA 2.1 ManyToOne,如果子实体是最后一个实体,则删除子实体(一侧)

grails - 尝试使用Grails的Quartz插件时发生编译错误

grails - 用户类和Spring Security ui插件中的电子邮件字段

java - HQL 查询集合中的列

macos - OS X - 输入 'grails' 命令后终端重置

Hibernate:停用特定保存的列版本更新

grails - 在 Grails 中查询域类关联

grails - GORM映射: make an index unique