【发布时间】:2015-04-27 11:28:28
【问题描述】:
我使用this 教程开发了一个spring data jpa 程序。然后通过添加一个新的类/方法来修改它来测试spring的@Transactional注解。
@Transactional
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
以上代码正确编译并执行。 然后我修改了代码以显式设置传播模式,如下所示,但这给了我一个编译错误 - “注释类型 Transactional 的属性传播未定义”
@Transactional(propagation=Propagation.REQUIRED)
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
如何明确指定传播模式? 以下是 build.gradle 中的依赖项。我正在使用 Spring Boot 版本 1.2.1.RELEASE
dependencies {
compile("org.springframework.boot:spring-boot-starter-jdbc")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("org.springframework.boot:spring-boot-starter-web")
compile ("org.springframework.boot:spring-boot-starter-tomcat")
compile("com.h2database:h2")
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}
【问题讨论】:
-
您是
@Transactionaljavax.transaction.Transactional还是org.springframework.transaction.annotation.Transactional?后者在spring-tx.jar,支持Propagation,在spring-tx.jar也有。 -
@Transactional 是 import javax.transaction.Transactional
-
有问题。您需要使用
org.springframework.transaction.annotation.Transactional。 -
谢谢它解决了我的问题
-
@Manish - 请发布答案,以便我正式接受。