1

我需要删除数据库中的多行。

数据在Tariff表中,其中包括另一个表的 ( vehicle) 主键。

假设如果我删除一个vehicle表数据,那么与tariff表中该特定 id 相关的数据也将被删除。

我试过了,如果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);
  }
}

请帮我解决这个问题,在此先感谢。

4

1 回答 1

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);
    }
  }
} 
于 2013-07-31T12:53:13.820 回答