導包的時候發現有兩個註解java
//javax的註解,即jpa的註解 javax.transaction.Transactional //spring的註解 org.springframework.transaction.annotation.Transactional
觀察AnnotationTransactionAttributeSource 類 spring
public AnnotationTransactionAttributeSource(boolean publicMethodsOnly) { this.publicMethodsOnly = publicMethodsOnly; this.annotationParsers = new LinkedHashSet<TransactionAnnotationParser>(2); //添加解析spring @Transactional 註解的解析器 this.annotationParsers.add(new SpringTransactionAnnotationParser()); if (jta12Present) { //添加解析jpa @Transactional 註解的解析器 this.annotationParsers.add(new JtaTransactionAnnotationParser()); } if (ejb3Present) { this.annotationParsers.add(new Ejb3TransactionAnnotationParser()); } }
綜上,本人建議使用spring的@Transactional 註解this