2011-12-27 11 views
11

Entonces, ¿es posible mezclar ambas configuraciones en lugar de usar solo una de esas?En Hibernate: ¿es posible mezclar Anotaciones y configuración XML para una Entidad?

Todo lo que quiero es mantener toda la configuración por Anotaciones y leer la tabla por un XML.

¿Es posible?

Muchas gracias.

Editar: ¿Cómo será el archivo hbm.xml? Tengo este:

<?xml version="1.0" encoding="utf-8" ?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class name="MyData" table="MyTable" > 
    </class> 
</hibernate-mapping> 

Y no compile el dtd.

+0

Esta publicación dice que puede hacerlo. ¿Has probado? https://forum.hibernate.org/viewtopic.php?f=1&t=931958&view=previous –

+0

Sí, ahora sé que es posible, pero no sé cómo llenar mi archivo de configuración xml solo con el nombre de la tabla. – ganzux

Respuesta

19

documentación de Hibernate (última)

Tenga en cuenta que puede mezclar el uso hbm.xml legado y la anotación enfoque. El elemento de recurso puede ser un archivo hbm o un descriptor de despliegue XML EJB3 . La distinción es transparente para su proceso de configuración .

Puede mezclar las clases persistentes anotadas y las declaraciones clásicas de hbm.cfg.xml con la misma SessionFactory. Sin embargo, no puede declarar una clase varias veces (ya sea anotada oa través de hbm.xml). Usted no puede mezclar estrategias de configuración (hbm vs anotaciones) en una jerarquía de entidad tampoco.

Para facilitar el proceso de migración de archivos hbm a anotaciones, el mecanismo de configuración detecta la duplicación de asignación entre anotaciones y archivos hbm. Los archivos HBM se priorizan sobre metadatos anotados clase por clase. Puede cambiar la prioridad utilizando la propiedad hibernate.mapping.precedence. El valor predeterminado es hbm, class y al cambiarlo a class, hbm se priorizarán las clases anotadas sobre archivos hbm cuando se produce un conflicto.

Cuestiones relacionadas