我正在将Spring Data用于我的应用程序存储库。
interface MyUserRepository extends JpaRepository<MyUser, Long> { … }
Spring数据默认为存储库添加事务,但如果我没有弄错,则使用Propagation.REQUIRED
。我如何为AOP中的所有存储库设置Propagation.MANDATORY
。我不想为每个存储库设置注释。
这背后的想法是禁止在事务范围之外使用存储库,因此它们只能通过服务使用。我正在使用AOP进行其他服务,但由于它们已被代理,因此它无法正常用于存储库。
答案 0 :(得分:4)
您可以创建自定义存储库基本界面,并使用您需要的设置进行注释:
@NoRepositoryBean
@Transactional(propagation = Propagation.MANDATORY)
public interface BaseRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> {
}
现在让您的所有应用程序存储库扩展该基本存储库接口,您将会很高兴。