ER-Diagramm
Code:
+-----------+ 1 n +-------------------+ n 1 +------------+
| person | ---<>--- | personaddress | ---<>--- | address |
+-----------+ +-------------------+ +------------+
| person_id | | person_id (fk)| | address_id |
| firstname | | address_id (fk)| | street |
| lastname | | addresstype_id(fk)| | zip |
+-----------+ +-------------------+ | country |
|n +------------+
|
|
| 1 +---------------+
+-------------<>----- | addresstype |
+---------------+
| addresstype_id|
| addresstpye |
+---------------+
Daten aus der Tabelle "addresstype": 'private', 'office primary', 'office secondary'
Ich speichere den addresstyp nicht in der addresse, weil die private adresse auch die büro adresse sein könnte, oder weil
die firmenanschrift des einen die Firmen und Privatanschrift eines anderen sein könnten.
Wenn ich mir nun alle daten aus der Datenbank holen will nutze ich flgendes
SQL-Statement:
Code:
select p.firstname, p.lastname, a.street, a.zip, a.country, a. addresstype
from person as p
join personaddress as pa on p.person_id = pa.person_id
join address as a on pa.address_id = a.address_id
join addresstype at on pa.addresstype_id = at.addresstype_id;
Meine
Java Klassen dazu schauen so aus:
Code:
class Person {
private long id;
private String firstname;
private String lastname;
private List addresses;
/** def c-tor */
/** getter and setter */
}
class Address {
private long id;
private String street;
private String zip;
private String city;
private String country;
/** def c-tor */
/** getter and setter */
}
Meine Frage lautet nun:"
Wie muss ich meine hbm.xml Dateien konfigurieren, dass die Daten richtig geladen werden und ich die Daten sowohl laden, löschen, aktualisieren oder einfügen kann?"