黑马程序员技术交流社区

标题: 自己分装Hibernate查询的时候有点小问题。。。 [打印本页]

作者: 彭昆    时间: 2013-1-28 11:44
标题: 自己分装Hibernate查询的时候有点小问题。。。
本帖最后由 彭昆 于 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。也就是说懒加载的那套没用了。

作者: 许庭洲    时间: 2013-2-1 19:46
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2