本帖最后由 xxxxxxbin 于 2014-04-11 14:36:00 编辑

解决方案 »

  1.   

    还有一个问题顺便也提下:
    CriteriaProxy 的  createAlias  和 createCriteria   ,也是和上面一样的状况,只会出现上部分电脑上  都是sql解析的时候 ,where后的别名多了“1_”。
    网上说 createAlias  和 createCriteria的区别是:createCriteria后面紧跟条件,createAlias  需要别名但不用紧跟着
      

  2.   

    hibernate查询的时候本来就会加很多莫名其妙的别名,你没必要在意这个,hibernate有专门它自己生成SQL的机制,只要你把那个SQL拷贝出来在你的查询编辑器跑一下OK,查询结果正确,就OK了。
      

  3.   


    static final String TO_DO_WORK_NEW = "select obj from WorkItem obj , TFFApplicaFlowRel t "
    + "inner join t.application a where obj.taskInstance.id = t.id and a.deleted=0  and (obj.state = ? or obj.state = ? ) ";
    这样是不会出现多的“1_” ,但没找到问题原因。比较头疼。
      

  4.   


    关键就是这样   他生产的 sql 是错误的    别名不对应
      

  5.   


    关键就是这样   他生产的 sql 是错误的    别名不对应
    那就是你的hql的别名有问题了,你把你的语句先写成SQL跑一下,没问题了再换成hql,hibernate不会出问题的。
      

  6.   


    关键就是这样   他生产的 sql 是错误的    别名不对应
    那就是你的hql的别名有问题了,你把你的语句先写成SQL跑一下,没问题了再换成hql,hibernate不会出问题的。
    仔细看下 java代码里的 ,别名是没有问题的,控制台打印出来解析好 的sql就有问题了,紧跟where后面的那个别名比from后面的多出一个“1_”。
    PS:同个代码 ,这个情况只出现在个别电脑上,我们部署在外网的系统是正常的,解析也OK
      

  7.   

    你这是在分页的时候出的问题吧? 把你count 的hql发出来看下
      

  8.   


    select
            count(*) as col_0_0_ 
        from
            T_FF_RT_WORKITEM workitem0_,
            T_FF_RT_TASKINSTANCE taskinstan1_,
            T_Q_PUB_APPLICATION tqpubappli2_ 
        where
            taskinstan1_1_.APP_ID=tqpubappli2_.ID 
    这个就是count的时候   这里报错就卡主不下去了
      

  9.   


    select
            count(*) as col_0_0_ 
        from
            T_FF_RT_WORKITEM workitem0_,
            T_FF_RT_TASKINSTANCE taskinstan1_,
            T_Q_PUB_APPLICATION tqpubappli2_ 
        where
            taskinstan1_1_.APP_ID=tqpubappli2_.ID 
    这个就是count的时候   这里报错就卡主不下去了hibernate语句, 就是像你问题里面的语句那样的