我需要删除数据库中的多行。
数据在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);
}
}
请帮我解决这个问题,提前谢谢。
您需要编写一个方法,为给定的vheicleId返回一组Tariff
。并按照以下重写代码
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);
}
}
}