GORM:hql查询产生异常:无法解析属性

时间:2013-11-08 16:45:54

标签: hibernate grails gorm

晚上好,

我的数据库中有一个名为Events的表,它有两个字段:START_DATE和END_DATE数据类型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。

2 个答案:

答案 0 :(得分:1)

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

非常感谢你的时间。

答案 1 :(得分:0)

看起来它没有拿起列名。我在GORM中看到过像这样的奇怪问题。

试试这个:

  1. 停止Tomcat
  2. 删除了Tomcat的Temp目录中的所有文件
  3. 重新启动Tomcat
  4. 如果有帮助,请告诉我。