循环中不要放入openSession()

for(Shop s:list) {
            System.out.println(s.getName());
            String sql="select shopId,sum(ele_bank+ele_card+water_card+water_bank+coal_card+coal_bank) as zonghe ,sum(sale_bank+sale_card) as  sale,sum(cigarette_card+cigarette_bank)  as bacco, sum(yidong_card+yidong_bank+dianxin_card+dianxin_bank)  as recharge from hs_shop_items  where  record_time like '%2013-12-12%' and shopId="+s.getId();
            Session officeSession=officeSessionFactory.openSession();
            officeSession.beginTransaction();
            SQLQuery queryOffice=officeSession.createSQLQuery(sql);
            List<ShopTransDTO>  r=queryOffice.addEntity(ShopTransDTO.class).list();
            res.add(r.get(0));
        }

如上图中的

1
2
Session officeSession=officeSessionFactory.openSession();
            officeSession.beginTransaction();

这个部分放在循环中是错误的

原文地址:https://www.cnblogs.com/toSeeMyDream/p/4518604.html