1

我在 Spring MVC 项目中没有 DAO 服务层。在我的控制器中,我希望创建一个条件查询。为此,我需要一个会话对象来调用“createCriteria(myClass.class)”。

如何获取会话对象?

我看到有些人在使用 HibernateUtil 类,例如“HibernateUtil.currentSession()”。我试过这个,但导入无法解决。我在这里发布了一些相关代码来解决另一个问题Hibernate criteria queries - Query Conditions

有人可以在这方面提供某种形式的指导吗,谢谢。

4

4 回答 4

1

HibernateUtil 是一个你应该根据自己的需要创建的类。这是相应的文档部分

于 2012-04-25T16:10:59.330 回答
0

我会看一下 dispatcher-servlet.xml。会话(休眠)、tx 管理器在上下文中设置以供以后访问。旧的 2.5 示例 .. http://static.springsource.org/spring/docs/2.5.x/reference/orm.html

于 2012-04-25T16:18:15.457 回答
0

HibernateUtil是 Hibernate 教程中的一个类。这不是真正的用途。请勿将其用于教程以外的任何内容。如果您已经在使用 Spring,它具有出色的 Hibernate 集成。从一开始就以正确的方式去做。

于 2012-04-25T16:18:44.790 回答
0

好的,通过使用父实体类中暴露的实体管理器解决了问题。我有一个名为 person 的类,其中放置了一个临时方法,如下所示

@Transient
public static Collection<?> searchResults(JsonJqgridSearchModel jsonJqgridSearchModel){
    HibernateEntityManager hem = Person.entityManager().unwrap(HibernateEntityManager.class);
    Session session = hem.getSession();
    Criteria criteria = session.createCriteria(Person.class);
    Iterator<JqgridSearchCriteria> iterator = jsonJqgridSearchModel.rules.iterator();
        while(iterator.hasNext()){  
            criteria.add(iterator.next().getRestriction());
        }
    return criteria.list();     
}

主要是 HibernateEntityManager 和 Session 是如何获得的。希望这可以帮助那里的人。

于 2012-05-10T18:50:13.650 回答