我有一个 Employee 域,其中包含 Professional_id。 Professional域里面有个叫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)
}
}
最佳答案
Professional.findAllByLevel(5) 将返回专业对象列表,但 Employee.findAllByProfessional_id() 正在等待字符串列表,因为属性 professional_id 是一个Employee 类中的字符串。因此,您尝试做的事情将行不通。
尝试这样做:
def emp = Employee.findAllByProfessional_id(Professional.findAllByLevel(5).id.toString())
无论如何,您的域似乎没有正确定义。您不需要像在 Employee 类中那样指定 professional_id 字段。您应该使用 belongsTo、hasMany、hasOne 指定关联。
关于mongodb - 我们可以在 findAll 中给出多个东西吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682403/