org.springframework.transaction.annotation.Transactional vs javax.jdo.annotations.Transactional

时间:2009-12-13 15:39:24

标签: java spring jdo

在服务层使用spring @Transcational时,我需要将<annotation driven>放在xml文件中。

我想知道

  1. 可以像春天一样在服务层上使用javax.jdo.annotations.Transactional吗?无需配置xml文件。等?

  2. 可以在服务层使用javax.jdo.annotations.Transactional,而不管我是否在dao层使用hibernate / jpa / jdo?我是否需要使用@Transactional

  3. 标记方法以外的任何其他内容进行配置
  4. javax.jdo.annotations.Transactionalorg.springframework.transaction.annotation.Transactional之间是否有任何差异/限制?

1 个答案:

答案 0 :(得分:6)

你看过javadoc了吗?这是我读到的javax.jdo.annotations.Transactional

  

注释,指示成员(字段或属性)是事务性的但不是持久性的。这对应于“field”和“property”元素的xml属性persistence-modifier =“transactional”。

这似乎与Spring的@Transactional注释不相上下。

  

描述a上的事务属性   方法或类。

     

此注释类型通常是   可以直接媲美Spring的   RuleBasedTransactionAttribute类,   事实上   AnnotationTransactionAttributeSource   将数据直接转换为   后一类,让春天的   事务支持代码没有   了解注释。如果没有规则   它将与例外有关   被对待就像   DefaultTransactionAttribute(滚动   回到运行时异常)。

所以,回答你的问题:

  

我可以知道可以javax.jdo.annotations.Transactional在服务层上使用就像spring一样吗?不需要配置xml文件。等?

没有

  

可以在服务层上使用javax.jdo.annotations.Transactional独立于我是否在dao层使用hibernate / jpa / jdo?除了使用@Transactional

标记方法之外,还需要配置任何其他内容

没有。见上文。

  

javax.jdo.annotations.Transactionalorg.springframework.transaction.annotation.Transactional之间的任何不同/限制?

是。一个是苹果,另一个是橙子。