Date Grails:“Where”闭包内日期间隔的计算
我有下表“party”,带有开始日期和持续时间属性:Date Grails:“Where”闭包内日期间隔的计算,date,grails,gorm,operations,Date,Grails,Gorm,Operations,我有下表“party”,带有开始日期和持续时间属性: CREATE TABLE `party` ( `idparty` int(11) NOT NULL, `startDate` date DEFAULT NULL, `duration` int(11) DEFAULT NULL, PRIMARY KEY (`idparty`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; “持续时间”表示以分钟为单位的持续时间 我可以使用以下选项进行查询: SE
CREATE TABLE `party` (
`idparty` int(11) NOT NULL,
`startDate` date DEFAULT NULL,
`duration` int(11) DEFAULT NULL,
PRIMARY KEY (`idparty`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
“持续时间”表示以分钟为单位的持续时间
我可以使用以下选项进行查询:
SELECT * FROM test.party where startDate + interval duration minute > curdate();
如果我希望在将来选择所谓的计划条目
我可以查询以从过去选择条目:
SELECT * FROM test.party where startDate + interval duration minute < curdate();
现在,我希望使用“Where”闭包使用GRAILS框架处理此类查询。我有一个域类Party,startDate作为日期,duration作为整数
我试图在Party.where{}closure中使用TimeCategory、plain additions、old-shool java.util.Date来抵抗这些查询,但没有成功:
要么忽略where部分,要么抛出异常
我认为,Hibernate框架的开放性缺陷是存在的
问题是,如果通常可能的话,使用GRAILS进行这样的操作?添加一个冗余的endDate字段,并运行简单的查询,如betweenhave you Tween executeQuery?根据我的经验,这些查询不值得使用。理论上看起来不错,但有很多问题。我会选择一个标准,看看这是否有效。