所以我要求像动态查找器这样的东西应该根据条件改变,让我用代码解释我的意思
以下代码按状态查找所有员工,并以lastdateattended
查找 def employee = Employee.findAllByStatusAndLastDateAttended("INA",dateObject)
现在我在Employee LastDateAttended和LastDateSigned中有两个字段,现在我希望如果一条记录没有LastDateAttended,那么它应该通过LastDateSigned找到,否则LastDateAttended,所以另一个条件就像
def employee = Employee.findAllByStatusAndLastDateAttended("INA",dateObject)
我不知何故想加入并使用基于条件的查询,是否可以实现?,如果可能请帮助
答案 0 :(得分:2)
我认为标准查询在这里有意义,如下所示
Employee.createCriteria().list{
and{
eq('status','INA')
or {
eq('lastDateAttended',dateObject)
eq('lastDateSigned',dateObject)
}
}
}
答案 1 :(得分:0)
Employee.list().findAll { emp->
emp.status == "INA" && ( emp.lastDateAttended!=null?
emp.lastDateAttended.equals(dateObject):emp.lastDateSigned.equals(dateObject)
)
}
答案 2 :(得分:-1)
Employee.findAllByStatusOrLastDateAttendedOrStatusAndLastDateAttended("INA",dateObject)