where id>=(select floor(rand()*(select max(eb.id) from DBEpaperBranch eb)))

解决方案 »

  1.   

    hibernate可以直接用sql语句
    像有这种子查询的hql容易报错
      

  2.   


    为什么??
    SQL也可以addEntity
      

  3.   

    用Hibernate的事务管理机制,将你的这条语句拆成几条HQL语句,在一个事务里面执行就OK了。
    我举个例子,你可以改进一下(单词有可能打错,楼主注意一下)。
    int a=(Integer)session.createQuery("select max(eb.id) from DBEpaperBranch eb").uniqueResult;后面的依次类推。