A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 彭昆 于 2013-1-28 16:54 编辑
  1.         /**
  2.          * 根据条件查询对象集合
  3.          *
  4.          * @param <T>
  5.          * @param hql
  6.          *            查询hql语句
  7.          * @param params
  8.          *            查询中的条件
  9.          * @return T泛型集合
  10.          */
  11.         @SuppressWarnings("unchecked")
  12.         public static <T> T getEntity(String hql, Object... params) {
  13.                      Session session = null;
  14.                      try {
  15.                                    session = getSession();
  16.                                   Query query = session.createQuery(hql);
  17.                                   if(params!=null){
  18.                                                 for (int i = 0, j = params.length; i < j; i++) {
  19.                                                                  query.setParameter(i, params[i]);
  20.                                                 }
  21.                                  }
  22.                                  return (T) query.list();
  23.                     } catch (HibernateException e) {
  24.                                    throw e;
  25.                     } finally {
  26.                                    if (session != null) {
  27.                                                  session.close();
  28.            }
  29.     }
  30.         }
复制代码
昨天刚学Hibernate,突然发现这样的封装是不正确的。我们在最后把session给关了,使之变成了脱管对象,导致其所依赖的对象无法正常进行初始化,这只能得到其ID。也就是说懒加载的那套没用了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马