数据库存放的时间类型:
in_times in_va
2012-05-05 10:00:00 10
2012-05-05 11:00:00 20
2012-05-05 12:00:00 30
JAP查询的时候能按日期分组吗?
相当于sql
select sum(in_va),to_char(in_times ,'yyyy-mm-dd') from my_table group by to_char(in_times ,'yyyy-mm-dd')
结果
2012-05-05 60
in_times in_va
2012-05-05 10:00:00 10
2012-05-05 11:00:00 20
2012-05-05 12:00:00 30
JAP查询的时候能按日期分组吗?
相当于sql
select sum(in_va),to_char(in_times ,'yyyy-mm-dd') from my_table group by to_char(in_times ,'yyyy-mm-dd')
结果
2012-05-05 60
解决方案 »
- websphere上部署spring quartz问题求教
- IntelliJ IDEA与Tomcat设置问题
- 怎样实现文件上传
- 求简单有效的XML文件比较方法
- 安装了 weblogic platform8.1集成环境 如果连接MS SQL SERVER ,还要再装JDBC吗,请知道的帮助一下,谢谢了
- MySQL出现了问题!请帮忙解决...
- 新手提问,关于hibernate.properties和hibernate.cfg.xml的问题
- 第一个EJB,出问题了!!!
- ssh框架导入xerces.jar出错 急求。。。。。
- mysql 连接数暴涨 求处理方法
- Hibernate 创建的表找不到
- 在fckeditor中显示中文乱码问题
你不用用to_char再转,直接group by date(日期类型就可以)
CriteriaBuilder来查的,那么写呢????
恩,你要统计,那是需要转成to_char.
类似于这样的:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();给你个api上的例子:Query query = entityManager.createQuery("select min(s.pint),s.pbyte from SimpleBean s group by s.pbyte");
List listExpected = query.getResultList();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
Root from = criteriaQuery.from(SimpleBean.class);
Expression minExpression = criteriaBuilder.min(from.get("pint"));
Path pbytePath = from.get("pbyte");
CriteriaQuery<Object> select = criteriaQuery.multiselect(minExpression, pbytePath);
CriteriaQuery<Object> groupBy = select.groupBy(pbytePath);
TypedQuery<Object> typedQuery = entityManager.createQuery(select);
List listActual = typedQuery.getResultList();
来源:http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-i/
如果数量很大,你还会用hql吗?肯定改用sql了。记住,在一个项目中,不可能只使用hql或者只使用sql。两者结合。