Ik heb volgende situatie
nu heb ik ook een klasse die een collectie van beide bevat :
ik wil dus dat ik nu via hibernate in de klasse definition een lijst van bounties en een lijst van points wordt opgehaald
volgende mapping heb ik:
zoals je kan zien heb ik voor een Table per subclass persistence strategy gekozen, nu is men vraag hoe maak ik de mapping van de definition class ?
ik had iets in de aard van :
het probleem zit hem in de mapping van de bag, hier wordt een table naam verwacht. En bij de key zit ik ook vast.... Hoe geef ik aan hibernate mee dat ik een subclass gebruik in men bag mapping ?
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Reward { priviate rewardId; private rewardProperty1; private rewardProperty2; } class Points extends Reward { private pointsProperty1; private pointsProperty2; } class Bounty extends Reward { private bountyProperty1; private bountyProperty2; } |
nu heb ik ook een klasse die een collectie van beide bevat :
Java:
1
2
3
4
| class Definition { private List bountyList; private List pointsList; } |
ik wil dus dat ik nu via hibernate in de klasse definition een lijst van bounties en een lijst van points wordt opgehaald
volgende mapping heb ik:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <hibernate-mapping> <class name="Reward" table="reward-table" lazy="false"> <id name="rewardId" type="long" unsaved-value="null"> <generator class="identity"/> </id> <property name="rewardProperty1"/> <joined-subclass name="Bounty" table="bounty-table"> <key column="rewardId"/> <property name="bountyProperyt1"/> </joined-subclass> <joined-subclass name="Points" table="points-table"> <key column="rewardId"/> <property name="pointProperty1"/> </joined-subclass> </class> </hibernate-mapping> |
zoals je kan zien heb ik voor een Table per subclass persistence strategy gekozen, nu is men vraag hoe maak ik de mapping van de definition class ?
ik had iets in de aard van :
Java:
1
2
3
4
5
6
7
8
9
10
11
| <hibernate-mapping> <class name="Definition" table="definition-table" lazy="false"> <id name="definitionId" type="long" unsaved-value="null"> <generator class="identity"/> </id> <bag name="pointsList" table="points-table" cascade="all-delete-orphan" lazy="false" batch-size="1" outer-join="auto" > <key column="rewardId" not-null="false"/> <one-to-many class="Bounty"/> </bag> </class> </hibernate-mapping> |
het probleem zit hem in de mapping van de bag, hier wordt een table naam verwacht. En bij de key zit ik ook vast.... Hoe geef ik aan hibernate mee dat ik een subclass gebruik in men bag mapping ?
"Live as if you were to die tomorrow. Learn as if you were to live forever"