当持久化数据类型为二进制(255)时,如何根据Joda LocalDate对象的月和日组件有效执行查询。
我想要完成的是找到'客户'其dateOfBirth(LocalDate)发生在今天的日期(LocalDate)。
似乎不可能使用Criteria查询,并使用诸如
之类的查询回退到HQLdef startDate = LocalDate.now()
def entries = Customer.executeQuery("SELECT c FROM Customer AS c " +
"WHERE DAY(c.dateOfBirth) = DAY(:today) AND " +
"MONTH(c.dateOfBirth) = MONTH(:today) ",[today:startDate])
因为LocalDate类型。
答案 0 :(得分:0)
使用sqlRestriction
:
def startDate = LocalDate.now()
def entries = Customer.withCriteria{
sqlRestriction 'DAY(dateOfBirth) = DAY(now()) AND MONTH(dateOfBirth) = MONTH(now())'
}
允许您将SQL与Criteria混合使用。您的数据库中应包含day()
,month()
和now()
个函数,但您必须检查