Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 检查当前日期是否介于开始日期和结束日期之间_Hibernate_Grails_Groovy - Fatal编程技术网

Hibernate 检查当前日期是否介于开始日期和结束日期之间

Hibernate 检查当前日期是否介于开始日期和结束日期之间,hibernate,grails,groovy,Hibernate,Grails,Groovy,我正在Grails中做一些工作。我的域类(简单消息)由开始日期和结束日期组成。我希望仅当当前日期(现在)在开始日期和结束日期之间时,才向用户显示“消息”,即仅当今天在开始日期和结束日期之间时,用户才可以看到消息。还请注意,我不想要任何与时间相关的计算 以下是域类: class SimpleMessage { String message Date startDate Date endDate } 以下是我的服务中定义的提取有效消息的方法: def GetLiveMess

我正在Grails中做一些工作。我的域类(简单消息)由开始日期和结束日期组成。我希望仅当当前日期(现在)在开始日期和结束日期之间时,才向用户显示“消息”,即仅当今天在开始日期和结束日期之间时,用户才可以看到消息。还请注意,我不想要任何与时间相关的计算

以下是域类:

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日)。令人惊讶的是,如果我删除第二个约束'le',我就能正确地得到消息记录


您的帮助将不胜感激。

如果上面使用的API与本机Hibernate Restrictions API类似(我猜是这样,因为它更符合逻辑),那么您只需在应该使用
le
时使用
ge
,反之亦然:

le("startDate", coTimeStamp) // startDate <= current date
ge("endDate", coTimeStamp) // endDate >= current date
le(“startDate”,coTimeStamp)//startDate=当前日期

如果上面使用的API与本机Hibernate Restrictions API类似(我猜是这样,因为它更符合逻辑),那么您应该在使用
le
时使用
ge
,反之亦然:

le("startDate", coTimeStamp) // startDate <= current date
ge("endDate", coTimeStamp) // endDate >= current date
le(“startDate”,coTimeStamp)//startDate=当前日期

像符咒一样工作…@JB Nizet..谢谢…我犯了个错误:)像符咒一样工作…@JB Nizet..谢谢…我犯了个错误:)