恐怕不行把,hibernate就是把表的关系结构给对象化了,你这个0 as Filesortid本身就不属于这个table的东西,也就是不属于一个对象的属性的你有这样的需求?

解决方案 »

  1.   


    select 1 as a, 0 as b from dual;
    像这种,sql是可以查询得到的,不过这个结果没啥意义,跟一个具体的对象实例应该是没什么关系吧
    这种用hql去实现也没意义吧
      

  2.   

    你可以重建一个当前table的vo类(手动添加),假设该类名为Mytable(其实就是你hibernate.vo下的那个名字)。该类包含Filesortid字段。
    然后Query q = session.createSQLQuery(sql);
    其中sql="SELECT Title, 0 AS Filesortid from Mytable(这里的Mytable不是你手动添加的Mytable,而是hibernate自动生成的Mytable)";
    用Mytable mytable = (Mytable) q.uniqueResult();这里的Mytable是指你手动创建添加的Mytable。
    这么做试一试看看能不能成。对与不对都给个回复啊~
      

  3.   

    感觉不行,hibernate就是把表的关系结构给对象化的
      

  4.   

    那个好像的确不行,那么SQL如:
    SELECT Title,Formmakerid
    FROM Office1
    UNION
    SELECT Title,Formmakerid
    FROM Office2在HQL里该怎么写呢?
      

  5.   

    select 类的属性 from 类的名称 
      

  6.   


    这些都是组合在一起的关系,只是两个表的值的一起显示而已,有悖hql的对象化
    楼主不要想这种问题了,不要想着hql去做sql的全部,就算能做也通常是不建议的