Удалить все строки в базе данных, используя распорки и крутящий момент

Мне нужно удалить более одной строки в базе данных.

Данные в Tariff таблица, которая включает в себя другую таблицу (vehicle) основной ключ.

Предположим, если я удалю vehicle данные таблицы, данные, которые связаны с этим конкретным идентификатором в tariff таблица также удаляется.

Я пытался, если tariff содержит более двух строк, связанных с vehicle что мне нужно удалить, и удалить первый в tariff Таблица других не удаляется.

Вот код:

Vehicle vehicle = VehiclePeer.doSelectFirst(c);
if (vehicleName != null && !vehicleName.equals(""))
{                   
  c.clear();
  c.add(TariffPeer.VEHICLE_ID, vehicle.getId());
  Tariff tariff = (Tariff) TariffPeer.doSelectAll();
  if (tariff != null && !tariff.equals(""))
  {
    TariffParamsPeer.doDelete(c.add(TariffParamsPeer.TARIFF_ID, tariff.getId()));
    TariffPeer.doDelete(tariff);
  }
}

Пожалуйста, помогите мне разобраться в этом, заранее спасибо.

1 ответ

Решение

Вам нужно написать метод, который перенастроит набор Tariff для данного vheicleId. И переписать код следующим образом

Vehicle vehicle = VehiclePeer.doSelectFirst(c);
if (vehicleName != null && !vehicleName.equals("")) {                    
  c.clear();
  c.add(TariffPeer.VEHICLE_ID,vehicle.getId());
  Set<Tariff> tarrifSet = TariffPeer.doSelectAll(vehicle.getId());
  for (Tariff tariff: tarrifSet) { 
    if (tariff !=null && !tariff.equals("")) {       
      c.add(TariffParamsPeer.TARIFF_ID, tariff.getId());
      TariffPeer.doDelete(tariff);
    }
  }
} 
Другие вопросы по тегам