javaEE hibernate中的Session关闭问题.

在pl/sql中查hibernate的session连接数

select count(*) from v$session

select count(*) from V$SESSION_WAIT

==========================

带openSession()必须手动关闭session,没带的hibernate可以自动关闭.

1.  ====

ExpandedBlockStart.gif 代码
String hql  =   "  Select u From UserBean u left join fetch u.roles r left join fetch r.permits where u.userid = :userid " ;
        Session ss 
=  getHibernateTemplate().getSessionFactory().openSession();
        UserBean us 
= (UserBean)ss.createQuery(hql).setParameter( " userid " ,user.getUserid()).uniqueResult();
        
try {
            
return  us ;
        }
        
finally {
            ss.close();
        }

2. ====

ExpandedBlockStart.gif 代码
public  List queryForPage( final  String hql,  final   int  offset,
            
final   int  length) {
        List list 
=  getHibernateTemplate().executeFind( new  HibernateCallback() {
            
public  Object doInHibernate(Session session)
                    
throws  HibernateException, SQLException {
                Query query 
=  session.createQuery(hql);
                query.setFirstResult(offset);
                query.setMaxResults(length);
                List list 
=  query.list();
//                 releaseSession(session);
                 try {
                    
return  list;
                }
                
finally {
                    session.close();
                }
            }
        });
        
return  list;
    }

 

3.  ===hibernate会自动关闭的如:

PlacardBean pt=(PlacardBean)this.getHibernateTemplate().get(PlacardBean.class, typeId);

------------

String hql="FROM OqcReturnBean as O WHERE O.mblnr='"+value+"'";
  List list = getHibernateTemplate().find(hql);

-------------

 

转载于:https://www.cnblogs.com/wj-wangjun/archive/2010/03/06/1679528.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值