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