spring date jpa 中返回map类型的方法

2019-07-24 01:46:11

参考地址1  spring date jpa 中返回map类型的方法

参考地址2 java:ja:Spring data jpa 返回map 结果集

找网上的资料,总结出两种spring date jpa 中使用sql查询返回出map的方法

StringBuffer hql = new StringBuffer();
    hql.append(" SELECT COUNT(c.id) waitPayOrder,COUNT(d.id) allOrder ");
    hql.append(" FROM (SELECT id FROM my_order WHERE create_date >= DATE_FORMAT(NOW(),'%Y-%m-%d') ");
    hql.append(" AND create_date <= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL - 1 DAY),'%Y-%m-%d') ");
    hql.append(" AND order_status = 1) c RIGHT JOIN (SELECT id FROM my_order ");
    hql.append(" WHERE create_date >= DATE_FORMAT(NOW(),'%Y-%m-%d') AND ");
    hql.append(" create_date <= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL - 1 DAY),'%Y-%m-%d')) d ON c.id = d.id ");
    Query query = em.createNativeQuery(hql.toString());
    query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    @SuppressWarnings("unchecked")
    List<Map<String, Object>> rows = query.getResultList();1234567891011

这种方法会返回一个map的集合..但网上说的这种方法会损失一定的性能..所以看着情况而定吧.

第二种(网上的说法,但使用时没有成功):

Query query = em.createNativeQuery(hql.toString(),Map.class);Map<Stirng,Object> map = query.getHints();(使用这个方法返回的结果是null,不知道是不是用错了)List<Map<String, Object>> rows = query.getResultList();(使用这个方法会报错..所以还是只有第一种方法能正常使用,


  • 2018-09-09 02:31:48

    基于VCamera,仿微信录制短视频

    基于VCamera,Android仿微信录制短视频,如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request。

  • 2018-09-13 22:24:04

    QQ微信登录失败,报100044错

    我用的mob的maven集成方案,说实在的从一开始用maven集成方案就是一个坑啊。每次build都会重新加载所有maven包,后来通过gradle offline总算解决了。

  • 2018-09-26 15:14:23

    PHP JSON_ENCODE 不转义中文汉字的方法

    PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据。 网上很多,但是其实都是错误的,正确的方法是在json_encode 中加入一个参数 JSON_UNESCAPED_UNICODE

  • 2018-09-27 10:04:11

    jquery ajax超时设置

    原来ajax可以设置超时时间,那么简单,ajax还有更多功能,虽然不怎么用它,有时候还挺好用。