1

私はGrailsでいくつかの作業を行っています。私のドメイン クラス (Simple Messages) は、開始日と終了日で構成されています。現在の日付 (現在) が開始日と終了日の間にある場合にのみ、「メッセージ」をユーザーに表示したい。つまり、今日が開始日と終了日の間にある場合にのみ、メッセージがユーザーに表示されるようにする必要があります。また、時間に関連する計算は必要ありません。

ドメインクラスは次のとおりです。

class SimpleMessage
{
    String message
    Date startDate
    Date endDate
}

有効なメッセージを抽出するために私のサービスで定義されたメソッドは次のとおりです。

def GetLiveMessages()
{
    def coTimeStamp = new Date().clearTime().toTimestamp()

    def c = SimpleMessage.createCriteria()

    def coCurrentMessages = c.list
    {
        ge("startDate", coTimeStamp) 
        le("endDate", coTimeStamp)
    }

    return coCurrentMessages
}

coCurrentMessages は常にサイズ 0 を返します。有効な日付のレコード (開始日 - 2012 年 6 月 1 日と終了日 2012 年 6 月 2 日) を追加しましたが、それでも 0 が返されます (今日 - 2012 年 6 月 1 日)。驚いたことに、2 番目の制約 'le' を削除すると、メッセージ レコードが正しく取得されます。

あなたの助けに感謝します。

4

1 に答える 1