【发布时间】:2011-05-02 08:17:59
【问题描述】:
我想问一下是否可以从域的日期属性中获取 week 数字 Grails 还是休眠标准?
例如在 mysql 中是 WEEK(CURRENT_TIMESTAMP)
提前致谢
【问题讨论】:
-
见this问题。
我想问一下是否可以从域的日期属性中获取 week 数字 Grails 还是休眠标准?
例如在 mysql 中是 WEEK(CURRENT_TIMESTAMP)
提前致谢
【问题讨论】:
您必须获取日期属性、转换属性并提取一年中的星期几。例如
// fetch property from db
def test= Test.get(1)
// convert date and get week of year
println test.date.toCalendar().get(Calendar.WEEK_OF_YEAR)
【讨论】:
如果您的数据库支持,您可以使用 Hibernate 的 week() 函数来做到这一点。
例如,以下对实体进行分组(假定按周有一个名称为 dateEntered 的日期字段,并产生一个 List<Object[]>,其中对于列表中的每个 Object[],第一个元素是计数,第二个元素是周数。
criteria.setProjection(Projections.projectionList()
.add(Projections.rowCount(), "parameterType")
.add(Projections.sqlGroupProjection(
"week({alias}.dateEntered) as week",
"week({alias}.dateEntered)",
new String[] {"week"},
new Type[] {Hibernate.INTEGER)))
.addOrder(Order.desc("parameterType"));
【讨论】: