我有一个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)
}
}
答案 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。
指定关联