grails中的条件动态查找器

时间:2015-10-19 06:24:37

标签: grails dynamic-finders

所以我要求像动态查找器这样的东西应该根据条件改变,让我用代码解释我的意思

以下代码按状态查找所有员工,并以lastdateattended

查找
    def employee = Employee.findAllByStatusAndLastDateAttended("INA",dateObject)

现在我在Employee LastDateAttended和LastDateSigned中有两个字段,现在我希望如果一条记录没有LastDateAttended,那么它应该通过LastDateSigned找到,否则LastDateAttended,所以另一个条件就像

      def employee = Employee.findAllByStatusAndLastDateAttended("INA",dateObject)

我不知何故想加入并使用基于条件的查询,是否可以实现?,如果可能请帮助

3 个答案:

答案 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)