Hallo,
Ich habe ein Objekt EmailGroupDTO, dieses besitzt es Set von EmailGroupMember. Das Hibernate-Mapping sieht folgendermaßen aus: <class name="EmailGroupDTO" table="S83RP04D120" mutable="true" lazy="false"> <id name="groupId" column="GROUP_ID" type="long" /> <property name="groupName" column="GROUP_NAME" type="string" /> <property name="groupOwner" column="OWNER" type="string"/> <set name="groupMembers" table="S83RP04D121" inverse="true" cascade="all" lazy="false"> <key column="GROUP_ID"/> <one-to-many class="EmailGroupMember" /> </set> </class>
Die Methode zum Speichern sieht folgendermaßen aus:
public EmailGroupDTO storeEmailGroup(EmailGroupDTO emailGroup) throws PersistenceException { Session session = HibernateUtil.getInstance().getCurrentSession(); Long groupId; if (emailGroup.getGroupId() != null) { groupId = emailGroup.getGroupId(); } else { groupId = createPrimaryKey(KEY_RANGE); emailGroup.setGroupId(groupId); } // set group id for all members for(EmailGroupMember member : emailGroup.getGroupMembers()) { member.setGroupId(groupId); } try { session.saveOrUpdate(emailGroup); } catch (HibernateException he) { … } return emailGroup; }
Das Anlegen neuer E-Mail-Gruppen funktioniert, auch das Hinzufügen von neuen Mitgliedern funktioniert. Lösche ich aber bestehende Mitglieder aus einer E-Mail-Gruppe, so werden diese nicht aus der Datenbank gelöscht.
Was muss ich ändern?
|