我们可以在findAll中给出多个东西吗?

时间:2015-06-06 11:40:55

标签: mongodb grails

我有一个Employee域,其中包含Professional_id。专业领域有一个名为level的字段。现在我想提取同一级别的所有员工。我该如何编写查询?

我想要像

这样的东西
def emp = Employee.findAllByProfessional_id(Professional.findAllByLevel(5))

员工域名:

class Employee {
    String username
    String password
    String reg_no
    String designation
    String personal_id
    String professional_id
    static constraints = {
        username(unique:true)
        password(password:true)
    }
}

专业领域 - :

class Professional {
    int level
    String bank_account_no
    String qualification
    String salary
    String department
    String performance
    String basic_pay
    String fax_no
    String employee_awards
    String job_duration
    String work_shift

    static constraints = {
        bank_account_no(unique:true)
    }
}

1 个答案:

答案 0 :(得分:1)

Professional.findAllByLevel(5)将返回Professional对象列表,但 Employee.findAllByProfessional_id()正在等待字符串列表,因为属性professional_id是一个Employee类中的字符串。因此,你要做的事情将无法奏效。

尝试这样做:

def emp = Employee.findAllByProfessional_id(Professional.findAllByLevel(5).id.toString())

无论如何,您的域名似乎未正确定义。您不需要像在Employee类中那样指定professional_id字段。您应该使用belongsTo,hasMany,hasOne。

指定关联