无法获取java.lang.String的属性'dayOfTheMonth'

时间:2014-02-27 18:22:23

标签: grails groovy gorm jodatime

我使用Grails和createCriteria根据日期是否在2个用户输入日期之间缩小搜索结果范围。当搜索的所有日期属性碰巧为空时,我遇到的问题就出现了。这导致错误说

  

无法获取java.lang.String

的属性dayOfTheMonth

有解决方法吗?如果我更改数据库以向其中一个用户提供其工作日期,则只有当所有数据都为空时才会发生这种情况。

    def c = User.createCriteria()
    DateTime tempDobStart = new DateTime(Integer.parseInt(params.dobStart_year), Integer.parseInt(params.dobStart_month), Integer.parseInt(params.dobStart_day), 0, 0)
    DateTime tempDobEnd = new DateTime(Integer.parseInt(params.dobEnd_year), Integer.parseInt(params.dobEnd_month), Integer.parseInt(params.dobEnd_day), 0, 0)
    def results = c.list(params) {
        and {
            if (username) {
                ilike("username", '%' + username.trim() + '%')
            }

            if (firstName) {
                ilike("firstName", '%' + firstName.trim() + '%')
            }

            if (lastName) {
                ilike("lastName", '%' + lastName.trim() + '%')
            }
            if (tempDobStart && tempDobEnd) {
                between("dob", tempDobStart, tempDobEnd)
            }
        }
    return results

1 个答案:

答案 0 :(得分:0)

结束了一个完全不同的问题,当我重定向回搜索页面时,它试图重新填充我试图搜索的东西,即使它认为它不是正确的格式。