java的dao层如何返回多个list

比如一个场景

我要这样展示(相同的元素只要展示一次)

前台是这样写的

el表达式是不能对数据进行处理的,所以数据有重复的那么就一定会显示出来

所以,考虑,能不能直接在dao中查询的时候直接返回三个list,这样前台直接取就行了

搜了一下,有类似需求

看起来是可以实现的,那么现在再新建两个查询,去重查出省份,去重查出行政区

语句

DISTINCT 是去重
province!=""是排除改字段的空值
SELECT DISTINCT province FROM t_ball WHERE province!="";

折腾了半天,不会组合这个hql语句,放弃

换一种写法

String hql = "from BallModel";
        Query query = session.createQuery(hql);
        List<BallModel> ballList = query.list();
        String hql2 = "from BallModel group by province HAVING(COUNT(province)>=1)";
        Query query2 = session.createQuery(hql2);
        List<String> provinceList = query2.list();
        String hql3 = "from BallModel group by origion HAVING(COUNT(origion)>=1)";
        Query query3 = session.createQuery(hql3);
        List<String> origionList = query3.list();

 然后把list put进map

然后controller这样写

实现结果

猜你喜欢

转载自www.cnblogs.com/jnhs/p/10045516.html