1

我想要这样的东西

'SELECT * FROM MyDomain WHERE endDate >= date AND startDate <= date'

Now please give possible solution by this way

def date = new Date().clearTime(), 
obj = MyDomain.find(....................) or
obj = MyDomain.findWhere(....................)

但我不想要任何 sql 或 hql 注入。任何人都可以帮助我。我想要 GORM 的这个。为我糟糕的英语道歉

4

2 回答 2

1

在这种情况下使用标准的最简单方法是

def myDomainList = MyDomain.withCriteria{
   def date = new Date().clearTime()
   le('startDate', date)
   ge('endDate', date)
}

请注意更正:查询要求小于等于和大于等于,在这种情况下必须在条件中使用'le'和'ge'。

AND 也隐含在标准中。

于 2013-03-27T02:34:25.393 回答
1

你需要写这个

def myDate = new Date().clearTime()
obj = MyDomain.findAll("FROM MyDomain Where (:myDate) between startDate AND endDate", [myDate: myDate])

或者

obj = MyDomain.executeQuery("FROM MyDomain Where (:myDate) between startDate AND endDate", [myDate: myDate])

如果您想在没有 sql 或 hql 的情况下使用,那么请使用标准

 obj = MyDomain.createCriteria().list{

      and{
           lt('startDate', myDate)
           gt('endDate', myDate)
         }
}

有关更多信息,您可以在此处此处访问

于 2013-03-25T08:42:31.043 回答