3

我正在开发一个使用 Spring 的 HibernateOpenSessionInViewFilter和 AOP 版本的项目 - OpenSessionInterceptor. AOP 拦截器是为 Quartz 作业配置的,以便在作业执行期间提供与 Web 请求期间相同的便利。

现在,我正在将这个项目从原生 Spring / Hibernate ORM 迁移到 Spring JPA,并使用 Hibernate 作为提供者。尽管OpenEntityManagerInViewFilterSpring ORM 提供了一个(它与会话过滤器基本相同),但没有OpenEntityManagerInterceptor或类似的东西。我无法弄清楚这里最好的方法是什么,所以问题是:

我应该编写自己的拦截器和/或摆弄这些SharedEntityManager类,还是有其他方法?

注意:该项目现在使用 Spring 4.0、JPA 2.1 和 Hibernate 4.3 构建。

4

1 回答 1

3

OpenEntityManagerInViewInterceptor正如JavaDoc 所建议的那样, Spring 有一个. 如果EntityManager不应绑定请求的范围,通常的方法是构建获得@Transactional注释的粗粒度组件,因为这将“绑定”EntityManager到事务的范围。

于 2014-07-31T11:32:57.317 回答