如果支持应该怎么写
hql啊.......................
感谢大家了啊.select xx from xx
union
select yy from yy
上面的sql怎么修成hql啊

解决方案 »

  1.   

    貌似是不支持的额 用createSQLQuery吧
      

  2.   


    http://www.opensubscriber.com/message/[email protected]/2783511.htmlI guess we should consider supporting UNION in HQL at least for report 
    queries. It makes a lot of sense when you're working on report queries 
    and customers have to fallback to plain JDBC for that. Since we probably 
    some kind of mechanism for union already, why not push it even further... 可能不支持,看版本吧如果是最新的试下,要不就JDBC
      

  3.   

    没听懂
    createAlias() or createCriteria(). 
    criteria的这两个如果不能满足你的要求的话,那应该不能把
      

  4.   

    做个小结
    1.可以直接用sql
    2.hibernate里可能有替代union的,试试createAlias() or createCriteria(). 
      

  5.   


    我就是想下面sql如果写成hql应该怎么写?
    select xx from tableClassX 
    union 
    select yy from tableClassY 或者上面的sql如果用hql写不出来,那用Hibernate怎么实现啊?
      

  6.   

    说不准那天业务就变,写在了配置文件。
     <sql-query name="InitMod">  
       <![CDATA[
        SELECT M.MOD_ID,M.URL,M.P_MOD_ID,M.MOD_NAME FROM T_MODULE M INNER JOIN
        (SELECT A.MOD_ID FROM T_ACL A  INNER JOIN T_ACC_ROLE B ON (A.ROLE_ID=B.ROLE_ID) 
        WHERE B.ACC_ID=:accId 
        AND B.PRIORITY=
        (SELECT MIN(C.PRIORITY) 
        FROM T_ACC_ROLE C INNER JOIN T_ACL D ON (C.ROLE_ID=D.ROLE_ID)  
        WHERE D.MOD_ID=A.MOD_ID AND D.ACC_ID=A.ACC_ID AND D.PRI_TYPE=A.PRI_TYPE)
        AND A.MOD_ID NOT IN
        (SELECT E.MOD_ID FROM T_ACL E WHERE E.ACC_ID=B.ACC_ID AND E.PRI_TYPE=:priType AND E.ROLE_ID=:roleId)   AND A.ACL_POWER&1=1
        UNION ALL
        SELECT F.MOD_ID FROM T_ACL F WHERE F.ACC_ID=:accId AND F.PRI_TYPE=:priType AND F.ROLE_ID=:roleId  AND F.ACL_POWER&1=1) J
        ON(M.MOD_ID=J.MOD_ID)
       ]]> 
        </sql-query> 调用代码----
    public List searchModules(int accId) {
    Query query=getSession().getNamedQuery("InitMod");
    query.setParameter("accId", accId);
    query.setParameter("priType", ConstantUtil.ACL_ACC_TYPE);
    query.setParameter("roleId", ConstantUtil.ACL_DEFAULT_ROLE);
            return  query.list(); }这下相信了吧!!
      

  7.   

    你想彻底用HQL那是不可能的,本身DB,一个表一个配置文件,想要多维填充实体。
    那要变相配置对象实体。根本就不是一个UNION符号的事情。
      

  8.   

    其实你把两张表的内容查询出来不就可以了么,无非就是要两张表的记录么,然后再根据需求去处理。
    from XX,YY;
      

  9.   

    没有看出什么门道出来。没有看出这个union做了什么作用。请指教
      

  10.   

    改什么SQL。。HQL 跨数据库服务器平台啦
      

  11.   

    我早已不用全自动化的对象持久化工具了,最多用个像ibatis这样的半自动化工具,要不就是原生的sql语句,存储过程还是高效的
      

  12.   

    个人认为:HIBERNATE是支持union,不过是不支持union分页!!
      

  13.   

    HIBERNATE不是面向对象操作么,不需要要sql语句了么,我刚学的,菜鸟一个....汗
      

  14.   

    用 createSQLQuery 肯定没问题