0

晚上好,

我的数据库中有一个名为 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。

4

2 回答 2

1

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

不过感谢您的时间。

于 2013-11-11T18:32:35.947 回答
0

It looks like it is not picking up the column name. I've seen some strange issues like this in GORM.

Try this:

  1. Stop Tomcat
  2. Deleted all the files in Tomcat's Temp directory
  3. Restarted Tomcat

Let me know if this helps.

于 2013-11-08T19:10:29.940 回答