hallo!
ich hab eine tabelle deren einträge sich auf beliebig viele andere einträge der selben tabelle beziehen können.
das hinzufügen funktioniert:
Code:
public void addParent(Stammdatum value)
{
this.getStammdatumParentMany().add(value);
value.getStammdatumChildMany().add(this);
}
nur das löschen mit:
Code:
public void removeChild(Stammdatum value)
{
value.getStammdatumChildMany().remove(this);
this.getStammdatumParentMany().remove(value);
}
nicht.
Code:
parent.getStammdatumChildMany().clear();
wiederum löscht die werte aus der m:n tabelle
was mach ich hier falsch?
und noch was: gibts eine möglichkeit in der m:n tabelle noch weitere daten abzulegen (z.b. die art der beziehung) ohne für m:n eine eigene klasse haben zu müssen?
Code:
<class name="Stammdatum" dynamic-update="true" dynamic-insert="true" table="stammdatum">
...
<bag name="stammdatumParentMany" table="stammdatum_stammdatum" inverse="true" cascade="none">
<key foreign-key="FK_STD_STD_CHILD" column="STDSTD_STDCHILDID"/>
<many-to-many entity-name="mappings.Stammdatum" foreign-key="FK_STD_STD_PARENT">
<column name="STDSTD_STDPARENTID" not-null="true"/>
</many-to-many>
</bag>
<bag name="stammdatumChildMany" table="stammdatum_stammdatum" inverse="false" cascade="none">
<key foreign-key="FK_STD_STD_PARENT" column="STDSTD_STDPARENTID" not-null="true"/>
<many-to-many entity-name="Stammdatum" foreign-key="FK_STD_STD_CHILD" column="STDSTD_STDCHILDID" />
</bag>
Danke