Ich habe ein Quelldaten-Jpa-Programm mit this Tutorial entwickelt. Dann wurde es geändert, indem eine neue Klasse/Methode hinzugefügt wurde, um die @Transactional Annotation von spring zu testen.Kompilierungsfehler bei der Verwendung von @Transactional mit dem Propagierungsattribut
@Transactional
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
Der obige Code kompiliert und ordnungsgemäß ausgeführt. Dann modifizierte ich den Code explictly Ausbreitungsmodus eingestellt, wie unten gezeigt, aber das gibt mir einen Übersetzungsfehler - „Das Attribut Ausbreitung wird für den Annotationstyp undefined Transactional“
@Transactional(propagation=Propagation.REQUIRED)
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
Wie kann ich die Ausbreitung angeben Modus explizit? Unten sind die Abhängigkeiten in build.gradle. Bin mit Federverschluß Version 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")
}
Ist Ihre '@ Transactional'' javax.transaction.Transactional' oder 'org.springframework.transaction.annotation.Transactional'? Das spätere findet sich in 'spring-tx.jar' und unterstützt' Propagation', das auch in 'spring-tx.jar' zu finden ist. – manish
Die @Transactional ist * import javax.transaction.Transactional * –
Es ist das Problem. Sie müssen 'org.springframework.transaction.annotation.Transactional' verwenden. – manish