2013-07-31 1 views
1

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

Данные находятся в таблице 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); 
    } 
    } 
} 
+0

благодарит брата за его работу .... @ Roman C – Siva