The second class was meant to be Car. Sorry for the typo.
Thanks for the info, that is exactly what I wanted to know.
On Feb 25, 2009, at 3:14 AM, Ingmar Lötzsch <[email protected]
e> wrote:
So, if I have
class Person {
int id;
String name;
List<Car> cars;
}
class Person {
int id;
String name;
}
Have you really two versions of class Person?
And I have 3 tables
person (
id,
name
)
car (
id,
name
)
person_x_car (
person_id
car_id
)
How is it that I go about
1) Updating a Person who has changes to their cars
There is no UPDATE statement to achieve this. You can DELETE all
rows in
person_x_car and then INSERT the recent pairs (person_id, car_id), if
there are no dependencies on the table person_x_car. Otherwise, or in
case you want to log the changes, you have to identify the disjoined
respectively added cars and DELETE/INSERT the appropriate rows.
2) Deleting a Person and subsequently deleting the relevant rows in
person_x_car
If your DBMS support DELETE ON CASCADE you can just delete the
person row.
-- ALTER TABLE person_x_car DROP CONSTRAINT fk_person_x_car_person;
ALTER TABLE person_x_car
ADD CONSTRAINT fk_person_x_car_person FOREIGN KEY (person_id)
REFERENCES person (id) ON DELETE CASCADE;
Otherwise you have to iterate over the car list and delete each join
before deleting the person.