【发布时间】:2015-06-19 17:43:42
【问题描述】:
我正在尝试在 CrudRepository 接口上实现事务。我是这方面的初学者,我目前的问题是,当收到来自不同客户的大量请求时,我有时会收到重复的请求。 为了避免这种情况,我想在 Spring 中使用 SQL Transactions 及其实现,但我无法让它工作。
这是我尝试过的方法:
@Repository
@EnableTransactionManagement
@Transactional
public interface ApplicationPackageDao extends CrudRepository<ApplicationPackage, Long> {
/**
* Find if a record exists for this package name ,
* @param packageName
* @return
*/
@Transactional
ApplicationPackage findByPackageName(String packageName);
}
但它似乎不起作用。 我尝试在前面调用的 Java 方法中添加 @Transactionnal 注释,但也无法正常工作。
我应该如何处理 CrudRepository 上的事务? 还是我使用了完全错误的东西?
【问题讨论】:
-
您是否尝试在方法之上使用
@Query注释?例如:@Query("select a from [object] a where UPPER(a.[attr]) like UPPER(?1)")? -
@chesh 查询注释是否允许我进行事务操作。我的主要问题是 CrudRepository 隐含的方法,例如保存。我想在允许 findByPackageName 之前等待执行保存。
标签: java spring transactions spring-boot