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, autoincremented
  • parent_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, autoincremented
  • child_parent_code, chaîne, clé étrangère pointant du parent parent_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?

InformationsquelleAutor Plutor | 2009-06-26