Hibernate: Spécification des colonnes dans un un-à-plusieurs relations
Je suis en train de construire une Hibernate couche pour un schéma de base de données, j'ai essentiellement aucun contrôle sur. Simplifié, il y a deux tables.
Table parent
a deux colonnes:
parent_id
, integer, primary key, autoincrementedparent_code
, chaîne, clé unique, généré par une boîte noire quelque part (disons que c'est un UUID pour la santé mentale du saké)- Plus un tas de colonnes de données
Table child
a deux colonnes:
child_parent_id
, integer, primary key, autoincrementedchild_parent_code
, chaîne, clé étrangère pointant du parentparent_code
valeur- Plus un tas de colonnes de données
Je veux être en mesure d'appeler Parent.getChilds() et obtenir une Collection d'objets Enfants. Mais la mise en place des fichiers de mapping Hibernate semble impossible. Ce qu'il fait avec les cartographies ci-dessous est à la recherche de la child
table avec le parent_id
valeur (au lieu de parent_code
).
Dans Parent.hbm.xml
:
<set name="childs" inverse="true" lazy="true" table="child" fetch="select">
<key>
<column name="child_parent_code" not-null="true" />
</key>
<one-to-many class="foo.bar.Child" />
</set>
Dans Child.hbm.xml
:
<many-to-one name="parent" class="foo.bar.Parent" fetch="select">
<column name="child_parent_code" not-null="true" />
</many-to-one>
J'ai passé une heure à étudier par le biais de ma copie de Java Persistance avec Hibernate, mais je ne peux pas comprendre comment faire ce que je veux. Est-il possible?
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela dans le parent:
et ce dans l'enfant:
J'ai supposé que le code de la propriété dans le parent est appelé "code".
Je voudrais envisager l'utilisation d'hibernate annotations. J'ai trouvé BEAUCOUP plus facile de travailler avec les définitions xml.
Voici le code dans l'annotation format: