9

如果我在我的 DAO 中使用 @Transactional,我的所有 EntityManager 查询都会被提交并关闭吗?还是我需要使用 Spring 模板(JPA 模板、Hibernate 模板)?使用 @Transactional 和 Spring 模板有什么区别?

4

4 回答 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 回答