我想问一下,是否可以从域的日期属性中获取周号码 Grails或hibernate Criteria ?
例如在 mysql 中,它是WEEK(CURRENT_TIMESTAMP)
提前致谢
答案 0 :(得分:0)
你必须获取日期属性,转换属性并提取一年中的一周。 e.g。
// 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)
答案 1 :(得分:0)
有可能,您可以使用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"));