Estoy intentando construir una capa Hibernate para un esquema de base de datos sobre el que esencialmente no tengo control. Simplificado, hay dos tablas.Hibernar: Especificar columnas en una relación uno a varios
Tabla parent
tiene dos columnas importantes:
parent_id
, enteros, clave primaria, autoincrementedparent_code
, cuerda, clave única, generada por un cuadro negro en alguna parte (digamos que se trata de un UUID por el bien de la cordura)- Además de un montón de columnas de datos
Tabla child
tiene dos columnas importantes:
child_parent_id
, enteros, clave primaria, autoincrementedchild_parent_code
, cuerda, apuntando clave externa a valor- de los padres
parent_code
Además de un montón de columnas de datos
Quiero poder llamar a Parent.getChilds() y obtener un objeto Collection of Child. Pero la configuración de los archivos de mapeo de Hibernate parece imposible. Lo que está haciendo con las asignaciones a continuación es buscar en la tabla child
con el valor parent_id
(en lugar de parent_code
).
En 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>
En 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>
He pasado una hora estudiando a través de mi copia de Java Persistence con Hibernate, pero no puedo encontrar la manera para hacer lo que quiero ¿Es posible?
El atributo de propiedad-ref funcionó por completo. ¡Gracias! – Plutor
No hay problema, me alegro de que haya ayudado. –
@DavidM ¿Hay una anotación equivalente de propiedad-ref en Hibernate? –