Ik zit met een Hibernate mapping probleempje waar ik niet uit kom.
Situatie: tabel Instelling, tabel Eigenschap, koppeltabel InstellingEigenschappen. Oftewel een veel op veel relatie tussen Instelling en Eigenschap.
Ik heb geen behoefte aan een Set Instellingen in Eigenschap, dus ik wilde eigenlijk alleen een Set Eigenschappen in Instelling definieren. Mijn Hibernate mapping voor Instelling is nu als volgt:
In de Hibernate mapping van Eigenschap is niets terug te zien van deze relatie.
Als ik nu een Instelling verwijder, dan worden de bijbehorende records uit InstellingEigenschappen ook netjes verwijderd. Verwijder ik een Eigenschap dan krijg ik een SQL fout op de InstellingEigenschappen tabel. De daarin aanwezige FK naar Eigenschap is niet meer geldig.
Ik heb het nu opgelost door een lazy set in de Hibernate mapping van Eigenschap te definieren. Wanneer ik nu een Eigenschap verwijder worden de bijbehorende records uit de koppeltabel ook verwijderd. Ik baal alleen van die onnodige set definitie. Mijn Eigenschap class heeft nu ook een Set Instellingen die ik nooit zal gebruiken..
Is er een manier om vanuit de Hibernate mapping van Instelling te regelen dat zowel van Instelling naar InstellingEigenschappen, als van Eigenschap naar InstellingEigenschappen een cascade moet plaatsvinden?
Situatie: tabel Instelling, tabel Eigenschap, koppeltabel InstellingEigenschappen. Oftewel een veel op veel relatie tussen Instelling en Eigenschap.
Ik heb geen behoefte aan een Set Instellingen in Eigenschap, dus ik wilde eigenlijk alleen een Set Eigenschappen in Instelling definieren. Mijn Hibernate mapping voor Instelling is nu als volgt:
XML:
1
2
3
4
5
6
7
8
9
10
| <set name="eigenschappen" table="InstellingEigenschappen" lazy="false" cascade="save-update"> <key column="Instelling_id"/> <many-to-many class="com.app.name.Eigenschap" column="Eigenschap_Id"/> </set> |
In de Hibernate mapping van Eigenschap is niets terug te zien van deze relatie.
Als ik nu een Instelling verwijder, dan worden de bijbehorende records uit InstellingEigenschappen ook netjes verwijderd. Verwijder ik een Eigenschap dan krijg ik een SQL fout op de InstellingEigenschappen tabel. De daarin aanwezige FK naar Eigenschap is niet meer geldig.
Ik heb het nu opgelost door een lazy set in de Hibernate mapping van Eigenschap te definieren. Wanneer ik nu een Eigenschap verwijder worden de bijbehorende records uit de koppeltabel ook verwijderd. Ik baal alleen van die onnodige set definitie. Mijn Eigenschap class heeft nu ook een Set Instellingen die ik nooit zal gebruiken..
Is er een manier om vanuit de Hibernate mapping van Instelling te regelen dat zowel van Instelling naar InstellingEigenschappen, als van Eigenschap naar InstellingEigenschappen een cascade moet plaatsvinden?
[ Voor 6% gewijzigd door zneek op 31-05-2005 17:02 ]