(SQL + Hibernate)计算12个月前的记录

时间:2014-06-16 16:06:45

标签: java mysql hibernate

有人可以帮助我找到一种方法,使用Array获得包含计数记录的<date_field>。我需要计算12个月之前的每条记录,如果不存在记录,则将放入数组中。

这是我在java + hibernate中的基本代码:

public Integer[] getViewsPerMonths() {
    Query query = sessionFactory.getCurrentSession().createQuery("");
    Integer[] viewsPerMonths = (Integer[])query.list().toArray();
    return viewsPerMonths;
}

表示例:

Id      |        View_Date     |

  1              01-01-2014
  2              02-01-2014
  3              03-01-2014
  4              03-01-2014

期望的结果:

  Count  |    Month
   1           1
   1           2
   2           3

我正在使用MySQL

...谢谢

1 个答案:

答案 0 :(得分:0)

为了获得一般的计数,代码看起来像这样:

CriteriaQuery<Long> countQuery = queryBuilder.createQuery(Long.class);
countQuery.select(criteriaBuilder.count(countQuery.from(clas)));
countQuery.where(condition);
count = entityManger.createQuery(countQuery).getSingleResult();

&#34;条件&#34;这将是你的Predicate对象。类似的东西:

condition = criteriaBuilder.between(v, x, y)

此处有更多信息:http://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaBuilder.html#between%28javax.persistence.criteria.Expression,%20javax.persistence.criteria.Expression,%20javax.persistence.criteria.Expression%29