【发布时间】:2016-03-11 19:53:58
【问题描述】:
当我在 @RequestMapping 中包含 @Transactional 注释时,我注意到在 springboot 中 url 映射不会自动配置。
这可能是什么原因造成的?
我想要一个 (C)R(UD) 休息调用在事务中工作的情况。
【问题讨论】:
标签: spring spring-boot spring-data-jpa
当我在 @RequestMapping 中包含 @Transactional 注释时,我注意到在 springboot 中 url 映射不会自动配置。
这可能是什么原因造成的?
我想要一个 (C)R(UD) 休息调用在事务中工作的情况。
【问题讨论】:
标签: spring spring-boot spring-data-jpa
如果您的目标是确保您的 CRUD 操作发生在事务中,那么使用 Spring Data JPA,默认情况下会为您完成。例如,创建一个扩展CrudRepository 的存储库接口,您的查询方法将固有地是@Transactional。您可以通过手动注释存储库上的查询方法来自定义 @Transactional 属性,但只有在您想要非默认行为时才需要这样做。
有关详细信息,请参阅 Spring Data JPA 文档。 http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#transactions
【讨论】:
@Transactional 注释方法会指示 Spring 在您的方法周围创建代理。为了做到这一点,该类需要实现一个接口,至少从我读过的内容来看是这样。我想知道这个过程是否会破坏控制器的行为。