Ho sviluppato un programma jpa di dati di primavera utilizzando il tutorial this. Quindi lo ha modificato aggiungendo una nuova classe/metodo per testare l'annotazione @Transactional di Spring.Errore di compilazione quando si utilizza @Transactional con attributo di propagazione
@Transactional
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
Il codice sopra riportato è stato compilato ed eseguito correttamente. Poi ho modificato il codice per impostare esplicitamente la modalità di propagazione come illustrato di seguito, ma questo mi dà un errore di compilazione - "La propagazione di attributo non è definito per il tipo di annotazione transazionale"
@Transactional(propagation=Propagation.REQUIRED)
public void txnMethod() {
repository.save(new Customer("First Customer",""));
repository.save(new Customer("Second Customer",""));
...
}
Come è possibile specificare la propagazione modalità esplicitamente? Di seguito sono riportate le dipendenze in build.gradle. Sto usando la primavera di avvio versione 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")
}
È il tuo '@ Transactional'' javax.transaction.Transactional' o 'org.springframework.transaction.annotation.Transactional'? La successiva è trovata in 'spring-tx.jar' e supporta' Propagation', che si trova anche in 'spring-tx.jar'. – manish
Il @Transactional è * import javax.transaction.Transactional * –
C'è il problema. È necessario utilizzare 'org.springframework.transaction.annotation.Transactional'. – manish