嗯,我可能在这个问题上错了,但我需要你宝贵的意见/建议才能站在正确的道路上。
我想知道{strong}良好,更好和最佳方式来处理Spring
+ {{1}中的事务管理},Hibernate
+ Spring
以及各自的优点和缺点。
我知道的一些方案/方法是:
1)使用AOP注释进行Spring事务管理(JDBCTemplate
,@Aspect
,其建议为@PointCut
,@Before
,@After
等)。
问题 - 1 :我之前使用Spring AOP完成了一个Logging示例,但我不知道为事务管理做同样的事情。交易开始,回滚和提交是否将在该Aspect类中完成,并具有@Around
,@Before
,@After
等建议?请为此分享一些代码示例/代码段。
问题 - 2 :这种方法是否强烈要求 Hibernate事务管理器,或者没有它可以实现?
2)带有@Around
注释的Spring事务管理器:另一个涉及 Hibernate事务管理器的事务管理方案,用于@Transactional
注释的声明式事务管理。
问题 - 3 :在方法上使用@Transactional
注释可保证该方法体中的所有事务管理,但如何在Multi-DAO中以这种方式管理回滚功能在该特定方法中对不同实体的操作?比方说,你正在进行3-4种不同的DAO操作(使用@Transactional的不同DAO方法),并且在第3次DAO操作时会发生一些异常,你将如何回滚。
请分享您的观点!
此致
阿伦
答案 0 :(得分:1)
认为你应该使用选项2 (例如Spring事务管理的东西),因为它已经实现并经过测试:)。关于'问题3' :这取决于您为所有"事务"选择的传播政策。 DAO API。请检查此javadoc @Transactional和'传播'部分。希望这会有所帮助。