Удалить все строки в базе данных, используя распорки и крутящий момент
Мне нужно удалить более одной строки в базе данных.
Данные в 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);
}
}
}