是一对一的关系吗,group by 不能根据对象吧,怎么的也有group by的字段吧
String  queryString = "  select o.xxx, sum(model.mouthNum) from BetInfo  model left join fetch opeUser o  "
        +"where  model.agentUser =? and model.opeTime >=? and opeTime <?  and compleStore=?"
              +"  group  by  o.xxx"; 
这样试试

解决方案 »

  1.   

    LS说的有道理。
    LZ把错误搞出来看看。直接查对象不知道成不成呀,有可能行。
    但是group by 肯定有问题。String  queryString = "  select model.opeUser, sum(model.mouthNum) from BetInfo  as  model    "
            +"where  model.agentUser =? and model.opeTime >=? and opeTime <?  and compleStore=?"
                  +"  group  by  model.opeUser.xxx"; 
      

  2.   


    这样似乎不行,查询项目中不是分组的字段,必须要在group by中
    String  queryString = "  select model.opeUser.xxx, sum(model.mouthNum) from BetInfo  as  model    "
    +"where  model.agentUser =? and model.opeTime >=? and opeTime  <?  and compleStore=?"
    +"  group  by model.opeUser.xxx";
      

  3.   

    谢谢大家,
    String  queryString = "  select model.opeUser.xxx, sum(model.mouthNum) from BetInfo  as  model    " 
    +"where  model.agentUser =? and model.opeTime >=? and opeTime  <?  and compleStore=?" 
    +"  group  by model.opeUser.xxx"; 这样执行肯定是可以的。关键的问题是我想返回opeUser实例是属于User ,我想返回User 对象
      

  4.   

    你的意思是想返回user对象?那你的sum(xxx),在user对象里有位置吗
      

  5.   

    也可以这样写,来返回OpeUser 对象,及其sum值
    Iterator results = sess.createQuery(
            "select model.opeUser, sum(model.mouthNum) from BetInfo  as  model "
            +"where  model.agentUser =? and model.opeTime >=? and opeTime  <?  and compleStore=? " 
            +"group  by model.opeUser")
            .list()
            .iterator();
            
    while ( results.hasNext() ) {
        Object[] row = (Object[]) results.next();
        OpeUser opeUser = (OpeUser) row[0];
        Integer sum = (Integer) row[1];
        .....
    }