0

大家好我正在使用 Spring+Jpa/Hibernate+Maven 并试图从数据库中获取记录。所以当我朗姆酒时,我的应用程序会出现错误

严重:servlet [Spring MVC Dispatcher Servlet] 在路径 [/SpringHibernateMaven] 的上下文中的 Servlet.service() 引发异常 [请求处理失败;嵌套异常是 org.hibernate.SessionException:会话已关闭!] 根本原因是 org.hibernate.SessionException:会话已关闭!在 org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49) 在 org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1621) 在 com.cdis.flod.dao.UserDao.getUserByName(UserDao.java :28) 在 com.cdis.flod.service.impl.UserServiceImpl.getUserByName(UserServiceImpl.java:46) 在 com.cdis.flod.web.LoginController.userLogin(LoginController.java:42) 在 sun.reflect.NativeMethodAccessorImpl。在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:

这是一段代码

public class AbstractDao<T> {

/** entity manager */
@PersistenceContext(unitName = "dbschema")
protected EntityManager entityManager;

public Session getHibernateSession() {
    return (Session) this.entityManager.getDelegate();
}



@Repository

公共类 UserDao 扩展 AbstractDao{

public User getUserByName(String userName) {
    Query hqlQuery = getHibernateSession().createQuery("from User where userName=:name").
        setString(RequestParameters.name.name(), userName);

    return (User)hqlQuery.setMaxResults(1).uniqueResult();  
}

}

4

1 回答 1

0

下面的代码对我有用:

public class AbstractDao<T> {

/** entity manager */
@PersistenceContext(unitName = "dbschema")
protected EntityManager entityManager;

public Session getHibernateSession() {
    return ((Session) this.entityManager.getDelegate()).getSessionFactory().openSession();
}



@Repository
于 2015-08-02T23:29:56.533 回答