Java 非web应用中的Hibernate事务管理

Java 非web应用中的Hibernate事务管理,java,spring,hibernate,spring-mvc,transactions,Java,Spring,Hibernate,Spring Mvc,Transactions,我有一个项目,它有一个SpringWeb应用程序和一个多线程后台应用程序 这两个项目有一个由模型类和dao组成的核心。 在SpringWeb应用程序中,我使用的SessionInViewPattern不需要在我的dao类中打开事务并提交,而在我的后台应用程序中,我不能使用SessionInViewPattern,我必须打开事务并提交它们 因为我的dao类在两个项目之间共享,所以解决方案是什么?您可以考虑在后台项目中实现AOP(面向方面编程),方法是用hibernate事务包装调用dao的方法。如

我有一个项目,它有一个SpringWeb应用程序和一个多线程后台应用程序

这两个项目有一个由模型类和dao组成的核心。 在SpringWeb应用程序中,我使用的SessionInViewPattern不需要在我的dao类中打开事务并提交,而在我的后台应用程序中,我不能使用SessionInViewPattern,我必须打开事务并提交它们


因为我的dao类在两个项目之间共享,所以解决方案是什么?

您可以考虑在后台项目中实现AOP(面向方面编程),方法是用hibernate事务包装调用dao的方法。如果您的后台项目使用spring,那么很容易将hibernate事务配置为方面。

您的DAO不应该处理事务。事务应该在服务层进行划分。我不需要@transactional,因为使用OpenSessionInView模式我的问题是我的dao在两个项目之间共享,在web项目中我不需要开始和注释事务,在后台项目中我必须开始和提交事务。不,你不需要。因为DAO不应该启动和提交事务。调用DAO的服务应该做到这一点。