whisky1hh
2009-09-06 20:25
浏览 320
已采纳

使用DetachedCriteria的时候,如何利用Hibernate的延迟加载机制

我的项目中只要使用到DetachedCriteria(或者Criteria)就会出现延迟加载失败(No session or session closed),主要是页面调用延迟加载项的时候。相反如果是使用一般HQL去查询就不会有这个问题。我使用了Spring提供的OpenSessionViewFilter。DetachedCriteria应该不会和延迟加载不兼容吧?或者是我的配置哪里有问题?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 我不是逗B 2009-09-10 15:37
    已采纳

    你可以试试这样
    [code="java"]
    DetachedCriteria detachedCriteria = DetachedCriteria.forClass(XXX.class);
    Criteria criteria = detachedCriteria.getExecutableCriteria(sessionFactory.getCurrentSession());
    List results = criteria.list();
    [/code]
    关键点是session是通过[code="java"]sessionFactory.getCurrentSession()[/code]来得到的

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题