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 用户指南中多次显示为“查询关联”

https://stackoverflow.com/questions/9765013/

相关文章:

grails - 哪个框架用于访问 couchDB 的门户网站?

grails - Grails 1.3.7如何在不进行任何缓冲的情况下直接写入输出流

jquery - 克隆一个动态创建的选择列表

unit-testing - 如何编写Grails delete()方法的测试

javascript - 如果弹出窗口被打开,则禁止刷新

grails - 将grails选择值传递给actionSubmit to Javascript方法

grails - Grails-多个联接在 ListView 中显示冗余数据

mongodb - 在grails中,如何让transactionManager是mongoTran

grails - 从环境变量将grails配置外部化为多个属性文件

hibernate - 复合键另存为null