如何通过WHERE子句访问相关表的属性?

时间:2015-05-06 08:41:51

标签: grails gorm

例如,我有以下域名:

class Company {
    String name 
}

class Employee {
    String firstName
    String secondName
    Company company
}

我试图让所有员工的公司名称为' M $ oft'

Employee.where {
   eq 'company.name', 'M$oft'
}.list()

GOT:

  

无法解析属性:company.name of:myapp.Employee

我也试试这个:

Employee.where {
   createAlias('company', 'c')
   eq 'c.name', 'M$oft'
}.list()

GOT:

  

无法解析属性:c:myapp.Employee

我知道:

Employee.where {
    company.name == 'M$oft'
}

但它不适合我。

我只想知道:是否可以通过where子句使用字段的字符串名称来实现?

1 个答案:

答案 0 :(得分:1)

使用下一个语法:

 Employee.where {
   company{
     eq 'name', 'M$oft'
   }
}.list()

并且不要忘记使用带有$的字符串''。也许是一些意想不到的结果。