我有一个名为 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/