Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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/2/spring/12.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
在独立java应用程序中移植hibernate Dao层?_Java_Spring_Hibernate_Spring Mvc - Fatal编程技术网

在独立java应用程序中移植hibernate Dao层?

在独立java应用程序中移植hibernate Dao层?,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我有一个使用Hibernate的SpringMVC应用程序。 我在Dao方法中使用sessionFactory.getCurrentSession(不支持hibernate) 我想知道的是,为了能够使用hibernate数据库层,我必须做些什么 在非web应用程序中 我有一个独立的java应用程序(通过main运行),我在其中加载spring的应用程序上下文 通过编程,然后获取我的服务层(这取决于我的hibernate db层)。 我是否需要在spring.xml文件中执行任何特殊操作来设置hi

我有一个使用Hibernate的SpringMVC应用程序。 我在Dao方法中使用sessionFactory.getCurrentSession(不支持hibernate)

我想知道的是,为了能够使用hibernate数据库层,我必须做些什么 在非web应用程序中

我有一个独立的java应用程序(通过main运行),我在其中加载spring的应用程序上下文 通过编程,然后获取我的服务层(这取决于我的hibernate db层)。 我是否需要在spring.xml文件中执行任何特殊操作来设置hibernate会话?

在我的SpringMVCWeb应用程序中,我确实用@Transactional注释了我的Dao方法。 (我希望事务以每次调用为基础,而不是一组db调用)


在我的web应用程序中,会话是如何创建/销毁的,是按请求创建/销毁的吗

您可以通过main方法获得spring
ApplicationContext
。它的行为将与web中的行为完全相同

ApplicationContext context = new  ClassPathXmlApplicationContext("applicationContext.xml");
YourDAO yDao = (YourDAO)context.getBean("yourDAO");
yDao.callYourSpecialMethod();

因此,从这一点来看,hibernate不依赖于它,它应该自动工作。这里只是视图被更改,没有逻辑或结构更改。因此,事务和其他事情应该像往常一样工作。

如果我希望每个请求都有一个会话事务,该怎么办?请求有点混乱,基本上每次调用DAO方法时,都会创建一个会话,并在使用后关闭(假设事务位于DAO层)。