Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在关闭会话。弹簧&x2B;Jpa/Hibernate+;专家_Hibernate_Spring Mvc_Jpa_Spring Orm - Fatal编程技术网

正在关闭会话。弹簧&x2B;Jpa/Hibernate+;专家

正在关闭会话。弹簧&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

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

这是一段代码

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