Spring boot @Transactional funktioniert nicht
Hatte ich add @Transactional auf die Methode in der service-Schicht.
@Transactional(readOnly = false)
public void add(UserFollow uf){
UserFollow db_uf = userFollowRepository.findByUserIdAndFollowUserId(uf.getUserId(), uf.getFollowUserId());
if(db_uf == null) {
userFollowRepository.save(uf);
userCountService.followInc(uf.getFollowUserId(), true);
userCountService.fansInc(uf.getUserId(), true);
throw new RuntimeException();//throw an Exception
}
}
userFollowRepository.speichern(uf); noch retten seccessful,nicht rollback...
ich tun, damit die Transaktion-manager auf die Anwendung.
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableJpaRepositories
@EnableTransactionManagement
public class Application {
@Bean
public AppConfig appConfig() {
return new AppConfig();
}
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
bewege ich mich @Transactional, Control-layer, es funktioniert, der code:
@Transactional
@RequestMapping(value="following", method=RequestMethod.POST)
public MyResponse follow(@RequestBody Map<String, Object> allRequestParams){
MyResponse response = new MyResponse();
Integer _userId = (Integer)allRequestParams.get("user_id");
Integer _followUserId = (Integer)allRequestParams.get("follow_user_id");
userFollowService.add(_userId, _followUserId); //this will throw an exception, then rollback
return response;
}
kann mir jemand sagen Grund, Dank!
Sie können angeben, die Verpackungen der Klasse vor?
Und die Klassendefinitionen, die umschließt die oben genannten Methoden.
Sie brauchen nicht
Genauer gesagt, ist der Ruf nach
Und die Klassendefinitionen, die umschließt die oben genannten Methoden.
Sie brauchen nicht
@EnableJpaRepositories
und @EnableTransactionManagement
auf Ihre Bewerbung. Klasse. Spring Boot aufzuspüren. Stellen Sie sicher, dass Ihr Dienst erkannt wird @ComponentScan
auf Ihre Application
Klasse. Im Idealfall müssen Sie sich nicht zu erklären, dass die AppConfig
so, dass sollte aufgegriffen werden, indem die @ComponentScan
.Genauer gesagt, ist der Ruf nach
@Transactional add
aus der gleichen Klasse oder aus einer anderen Klasse?InformationsquelleAutor wb_james | 2014-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut http://spring.io/guides/gs/managing-transactions/
so begann es zu arbeiten, nachdem Sie Hinzugefügt hatte @EnableTransactionManagement
InformationsquelleAutor PaintedRed