春季 JPA 存储库事务性
1 个关于春季 JPA 存储库事务性的快速问题。我有一个未标记为事务性的服务,并调用Spring JPA存储库方法
userRegistrationRepository.deleteByEmail(email);
它被定义为
@Repository
public interface UserRegistrationRepository extends JpaRepository<UserRegistration, Long> {
UserRegistration findByEmail(String email);
void deleteByEmail(String email);
}
问题是它失败,“没有实体管理器与实际事务可用于当前线程 - 无法可靠地处理'删除'调用;嵌套异常是 javax.persistence.TransactionRequiredException“ exception。
好吧,我可以通过将服务或deleteByEmail(..)方法标记为事务性来解决它,但我只是不明白为什么它现在崩溃了。Spring文档明确指出“默认情况下,存储库实例上的CRUD方法是事务性的。(http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#transactions),但显然这个不是...那么,此语句是否仅与 的成员相关?CrudRepository
ps:那是春季数据 JPA 1.9.4