正在关闭会话。弹簧&x2B;Jpa/Hibernate+;专家
大家好,我正在使用Spring+Jpa/Hibernate+Maven并试图从DB中获取一条记录。所以当我使用rum时,我的应用程序会出现如下错误 严重:路径为[/SpringHibernateMaven]的上下文中Servlet[Spring MVC Dispatcher Servlet]的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.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 位于org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 位于org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) 位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 运行(Thread.java:662) 这是一段代码正在关闭会话。弹簧&x2B;Jpa/Hibernate+;专家,hibernate,spring-mvc,jpa,spring-orm,Hibernate,Spring Mvc,Jpa,Spring Orm,大家好,我正在使用Spring+Jpa/Hibernate+Maven并试图从DB中获取一条记录。所以当我使用rum时,我的应用程序会出现如下错误 严重:路径为[/SpringHibernateMaven]的上下文中Servlet[Spring MVC Dispatcher Servlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为org.hibernate.SessionException:会话已关闭!]的根本原因 org.hibernate.SessionExce
public class AbstractDao<T> {
/** entity manager */
@PersistenceContext(unitName = "dbschema")
protected EntityManager entityManager;
public Session getHibernateSession() {
return (Session) this.entityManager.getDelegate();
}
@Repository
}下面的代码对我很有用:
public class AbstractDao<T> {
/** entity manager */
@PersistenceContext(unitName = "dbschema")
protected EntityManager entityManager;
public Session getHibernateSession() {
return ((Session) this.entityManager.getDelegate()).getSessionFactory().openSession();
}
@Repository
公共类抽象DAO{
/**实体经理*/
@PersistenceContext(unitName=“dbschema”)
受保护的实体管理器实体管理器;
公共会话getHibernateSession(){
返回((会话)this.entityManager.getDelegate()).getSessionFactory().openSession();
}
@存储库
它是一个Web应用程序吗?尝试使用OpenEntityManagerViewFilter。嗨,阿米尔·帕沙扎德:)我已经用这种方法尝试过了,并且能够得到它。Query Query=entityManager.createNativeQuery(“select*from User where User\u name=:name”,User.class);Query.setParameter(“name”,userName);return(User)Query.getSingleResult();但我不明白我的代码中的错误是什么..如果你能帮助我,我将不胜感激:)谢谢:)非常感谢Amir Pashazadeh我现在通过添加OpenEntityManagerViewFilter获得了它非常感谢:)
public class AbstractDao<T> {
/** entity manager */
@PersistenceContext(unitName = "dbschema")
protected EntityManager entityManager;
public Session getHibernateSession() {
return ((Session) this.entityManager.getDelegate()).getSessionFactory().openSession();
}
@Repository