晚上好,
我的数据库中有一个名为 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/