如果我在我的 DAO 中使用 @Transactional,我的所有 EntityManager 查询都会被提交并关闭吗?还是我需要使用 Spring 模板(JPA 模板、Hibernate 模板)?使用 @Transactional 和 Spring 模板有什么区别?
问问题
7482 次
4 回答
4
Spring 模板类只是为了提供更好的 API 来执行持久性操作——它们不处理事务。如果要进行事务性操作,要么需要使用@Transactional注解方式,要么使用TransactionTemplate。
于 2009-05-18T10:13:05.640 回答
4
使用基于注解的事务划分 ( @Transactional
) 和TransactionTemplate
使用基于注释的事务划分 ( TransactionTemplate
您可以将基于注释的事务划分与 Spring 事务支持或 Spring 容器外部的 AspectJ 事务一起使用。
另请参阅Spring 中事务的在线文档。
于 2009-05-18T15:58:15.163 回答
1
当您在正确的 Spring 配置中使用 @transactional 时,Spring 将识别该方法需要一个事务并为您处理事务的创建、提交和关闭。
就像 skaffman 所说,@transactional 不直接与模板类相关联。它们可用于任何可能需要事务的类。
于 2009-05-18T15:51:56.563 回答
0
你的意思是使用@transactional 将使用提交、关闭或使用spring 事务模板(jpatemplate、hibernatetemplate)封装我的dao 方法吗?
于 2009-05-18T15:42:11.327 回答