Удалите все данные нескольких таблиц в базе данных, содержащих отношения родитель-потомок, без передачи параметров [Spring boot] - PullRequest
0 голосов
/ 17 июня 2020

Мне интересно, есть ли способ удалить все данные из нескольких таблиц родительского / дочернего элементов без передачи параметров? Поскольку строк с общим идентификатором в этой таблице много, неудобно всегда делать это с помощью void deleteAllByUserId(Long userId). Если я передаю идентификатор методу каждый раз, мне придется делать это много раз. Но очевидно, что я не могу просто сделать void deleteAll() на множестве, потому что это будет ошибка из-за отношений родитель / потомок. Поэтому мне интересно, есть ли способ сделать это в методе в обращении?

Например, если у меня есть три таблицы, а именно: Таблица A, Таблица B и Таблица C. Все они используют ключ User_Id.

  1. Я не редактировал свой репозиторий, потому что deleteAll () уже написано.
  2. Реализация услуги

    @Autowired
    private ARepository aRepository;
    
    @Autowired
    private BRepository bRepository;
    
    @Autowired
    private CRepository cRepository;
    
    
    public void deleteAllDataThreeTable() {
        aRepository.deleteAll();
        bRepository.deleteAll();
        cRepository.deleteAll();
    }
    

Я понятия не имею, как удалить идентификатор по идентификатору с помощью передаваемых параметров, потому что существует много строк, и я не думаю, что передача каждого идентификатора является хорошим способом go. Любая идея - отличный помощник. Спасибо!!

1 Ответ

0 голосов
/ 17 июня 2020

Предполагая, что вы хотите удалить всех дочерних элементов при удалении пользователя, вы должны использовать функциональность ON DELETE CASCADE вашего сервера базы данных. Эта страница дает хороший пример того, как сделать это в MySQL.

...