Hallo!
Ich bin zwar ein Newbie aber ich kann ja das posten, was ich habe und was auch funktioniert.
Datenbank:
Code:
document
-------------
documentID
documentName
personID
.....
person
------------
personID
personName
Zwei Klassen: "Document.java" und "Person.java"
Person.javaCode:
...
/**
* @return the userID
* @hibernate.id generator-class="native" column="personID"
*/
public Long getPersonID()
{
return personID;
}
/**
* @param userID the userID to set
*/
public void setPersonID( Long personID )
{
this.personID = personID;
}
...
Document.javaCode:
/**
* @hibernate.bag cascade="all-delete-orphan"
*
* @hibernate.collection-key column="documentID"
*
* @hibernate.collection-one-to-many class="com.***.***.persistent.Person"
*
* @return Returns a list of users
*/
public List getPersonList()
{
return personList;
}
/**
* Sets a list of persons
*
* @param personList the person list
*/
public void setPersonList( List personList )
{
this.personList = personList;
}
Und als Ergebnis muesstest Du etwas so wie das hier haben:
Document.hbm.xmlCode:
....
<bag name="personList" lazy="false" cascade="all-delete-orphan" inverse="false" mutable="true" optimistic-lock="true" embed-xml="true">
<key column="documentID" on-delete="noaction" />
<one-to-many class="com.***.***.persistent.Person" not-found="exception" embed-xml="true" />
</bag>
....
Ich habe die Erfahrung gemacht, dass bei cascade="all-delete-orphan", nicht nur das parent objekt sondern ebenfalls auch die child objekte veraendert werden. Das heisst, loescht Du das Document-Objekt, wird auch die Person geloescht. Haengt jetzt von Deinem Scenario ab, was Du haben moechtest.
Ich hoffe es hilft, wenn nicht dann wieder melden.
Gruss,
Dariusz