grails - 如何从 grails 查询中访问属性

标签 grails

我有一个名为 Application 的域类,如下所示:

class Application {
    static hasOne = [resumption:Resumption, employee:Employee]
    //Employee employee 
    Date startDate
    Date endDate
    Integer amountOfDays
    String leaveRecommended
    String leaveNotRecommended
    Date supervisorDate

    String toString(){
        return "Application for ${employee.lastName}, ${employee.firstName}"
    }
}

在 ApplicationController 中,我正在尝试编写一个查询,该查询将查找与特定员工 ID 匹配的所有应用程序。我这样做如下:
def applicationlist(){

    if(!params.max){
        params.max = 10
    }

    def query
    def criteria = Application.createCriteria()
    def results

    query = { eq("employee_id", Long.parseLong("1")) }

    results = criteria.list(params, query)
    render(view:"employeeapplicationlist", model:[applicationlist:results])
}

现在我不断收到错误消息:“无法解析属性:employee_id”
我检查了 MySql 中生成的 Application 表,有一个名为 employee_id 的列,其中包含一个值。奇怪的是我可以访问任何其他属性(如 amountOfDays),那么employee_id 是怎么回事?为什么它提示它不能解决属性(property)?我错过了什么?提前致谢。

最佳答案

标准 DSL 中的关联具有以下形式

Application.withCriteria{
    employee{
       eq 'id', 1
    }
}

http://grails.org/doc/latest/guide/GORM.html#criteria

但你可能只是这样做:
def employee = Employee.proxy(1)
Application.findAllByEmployee( employee )

这在 Grails 用户指南中多次显示为“查询关联”

关于grails - 如何从 grails 查询中访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765013/

相关文章:

list - 将多个复选框绑定(bind)到 Grails 中的列表

grails - 获取remoteField以更新另一个字段

grails - 在 Grails 中将主键 ID 更改为字符串类型

unit-testing - 如何对使用springSecurityService的 Controller 进行单元测试?

grails - 如何在传递参数时重定向到 Grails 中的 Controller

java - 如何在 Hibernate/Grails 中使用 Switch Case/Function 进行排序

grails - 限制从数据库检索的行,以了解域类之间的关系

java - 使用 Java bean 作为 Grails 域类

grails spring security oauth 仍然需要本地用户名/密码?

grails - Grails-多个下拉框值