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 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 に答える
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 に答える