• hql 不支持UNION ALL的解决思路

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 应对Hibernate不支持UNION ALL的一种思路

    问题描述

    由于实际需求,要将查询的结果合并,发现写出来执行不正确,查了一下原来是Hibernate不支持UNION ALL。本来打算调用本地的sql,可是写到一半发现太麻烦。

    解决办法

      String hql1="select lv from LogView lv,Lc lc, Course c where (lv.id.operaType in (22,21,72,61,51) and lv.id.sourceType=2 and lv.id.id=lc.id and lc.course.id=c.id and c.user.id="+userId+")";


         String hql2="select lv from LogView lv,Community com where (lv.id.operaType in (21,61) and lv.id.sourceType=3 and lv.id.id=com.id and com.user.id="+userId+")";
     

         list= UserDAO.getInstance().list(hql1);
         List list2= UserDAO.getInstance().list(hql2);   

         list.addAll(list2);   //将两次查询的结果拼接起来

         PageList messagelist= new PageList((ArrayList) list, start, pageSize, list.size());  //再返回pagelist

    • 标签:
    • all
    • hql
    • select
    • string
    • logview
    • lv
    • union
    • list
    • userdao.getinstance
    • list2
    • userid+
    • hql1
    • hql2
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部