我想知道有没有办法在不传递参数的情况下删除父/子表的多个表的所有数据?因为这些表的共享 ID 的行很多,所以总是通过void deleteAllByUserId(Long userId)
来做是不方便的。如果我每次都向该方法传递 id,我将需要多次这样做。但很明显,我不能简单地对多个 cuz 进行void deleteAll()
,由于父子关系,它会出错。所以我想知道有没有办法在命中的方法中做到这一点?
例如,如果我有三个表,分别是表 A、表 B 和表 C。他们都共享User_Id的钥匙。
- 我没有编辑我的存储库,因为 deleteAll(( 已经写好了。
-
服务实施
@Autowired private ARepository aRepository; @Autowired private BRepository bRepository; @Autowired private CRepository cRepository; public void deleteAllDataThreeTable() { aRepository.deleteAll(); bRepository.deleteAll(); cRepository.deleteAll(); }
我不知道如何通过传递参数按id删除id,因为有很多行,我不认为传递每个id是一个好方法。任何想法都是一个很大的帮助。谢谢!!
假设您希望在删除用户时删除所有子项,则应使用数据库服务器的ON DELETE CASCADE
功能。这个页面提供了一个在MySQL中执行此操作的很好的例子。