2012-04-17 18 views
8

Cuando comencé a trabajar con Hibernate hace unos días, me preguntaba: supongamos que está comenzando un proyecto desde cero. ¿Utilizaría mapas de anotación o archivos de mapeo de Hibernate para generar el esquema de la base de datos?Hibernate: asignación de archivos o anotaciones?

Tengo entendido que los archivos de mapeo de Hibernate ofrecen algunas características que no encontrará (al menos, no el equivalente exacto) con anotaciones. Pero aún así, tengo la sensación de que hoy en día, los proyectos que usan Hibernate prefieren los archivos de mapeo basados ​​en anotaciones que los de Hibernate.

¿Alguien ha elegido mapear archivos sobre anotaciones, y si es así, por qué?

Respuesta

12

Qué ventajas que veo en utilizando @Annotations:

  • compilador de fallos
  • basado en @Entity se puede distinguir fácilmente entidad desde no-entidad
  • con ENTIDADES característica de packagesToScan primavera son fácilmente escaneable
  • moviendo entites de paquetes a paquetes o cambio de nombre de clase es fácil

Qué ventajas que veo en utilizando XML:

  • que no camadas clases Java con innecesarias específicos del proveedor anotaciones (imaginar clase de modelo Java con JPA, JAXB, SolrJ anotaciones)
  • de configuración en un lugar
  • más fácil de mantener en su conjunto

utilizamos anotaciones, pero ten XML como una opción.

4

Siga adelante con anotaciones cualquier día. Las configuraciones XML donde realmente se usaron en exceso y guardar los metadatos dentro de la clase es una buena opción viable.

Las anotaciones lo ayudarán a mapear mejor las relaciones y lo alineará con el estándar JPA, ya que hibernate utiliza principalmente las anotaciones JPA. No hay problemas reales con el uso de anotaciones y tampoco hay mucho compromiso. Tiene ventajas superiores sobre las configuraciones basadas en XML. Puede que falten algunos hacks cuando usa anotaciones, pero aparecerán.

Incluso es posible utilizar anotaciones para nuevas clases en un proyecto heredado que tiene una asignación basada en XML como se dice here.

Cuestiones relacionadas