大家好我正在使用 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();
}
}