我正在考虑使用 Spring 附带的Open Session In View (OSIV)过滤器或拦截器,因为这对我作为开发人员来说似乎是一种方便的方式。如果这是你推荐的,你推荐使用过滤器还是拦截器,为什么?
我还想知道它将如何与HibernateTemplate混合,以及我是否会失去将方法标记为@Transactional(readOnly = true)等的能力,从而失去获得更细粒度事务控制的能力?
是否有某种最佳实践可以将这种解决方案与使用 Hibernate 和 Spring 的三层架构集成(因为我认为我决定使用 Wicket 进行演示应该无关紧要)?
如果我使用 OSIV,我至少永远不会遇到延迟加载异常,另一方面,我的事务将在能够通过在视图中未提交来提交之前存活更长的时间。