无法在Spring数据存储库中使用deleteBy自定义方法执行删除操作

时间:2019-03-29 13:41:52

标签: java spring spring-transactions

当我尝试使用spring数据存储库中的deleteBy()自定义方法从服务类中删除数据时,会出现以下错误。

javax.persistence.TransactionRequiredException:没有用于当前线程的具有实际事务的EntityManager-无法可靠地处理“删除”调用

我尝试使用方法和服务类@Transactional。然后,自动装配成员将为空。这些是在没有@Transactional的情况下初始化的。

3 个答案:

答案 0 :(得分:1)

加载所有需要删除的数据。 getBYId(id); 并使用该集合执行deleteAll()操作。 这样就解决了问题。

答案 1 :(得分:1)

您必须先加载对象

答案 2 :(得分:0)

我遇到了同样的问题,但是我只用@Transactional注释了该方法后,它才起作用。

@Repository()
interface UserRepository : CrudRepository<User, Long> {

    @Transactional
    fun deleteAllByCpf(cpf: String)
}

就我而言,我在Kotlin中使用Springboot。