2009-09-02 8 views

Respuesta

14

No es algo importante como en "obligatorio". Es una posibilidad diferente, con fuerza y ​​debilidad.

Ventajas:

  • tiempo de compilación de cheques: escrito en Java (en lugar de XML) es muy fácil de usar en el IDE de hoy en día. errores tipográficos No más descubierto al iniciar su aplicación (compilación incremental), no hay mucho que recordar (finalización) ...
  • localizada con el código (nivel de clase): en lugar de tener que abrir dos archivos (Java y xml) para obtener la historia completa, con un archivo java anotado, usted abra solo un archivo. Esto es menos repetitivo, más rápido a largo plazo.
  • Localizado con el código (método o nivel de campo): debido a que la anotación va sobre un método (o campo), no es necesario especificar el método al que pertenece el método . No se proporciona esa información adicional, que es más corta y siempre coherente (incluso después de una refactorización del código, por ejemplo). El mantenimiento es mucho más rápido.
  • Las herramientas (javadoc, otras herramientas que usan la reflexión) pueden usar las anotaciones para otros requisitos.
  • Las anotaciones son más recientes que las xml, el equipo usó la entrada que habían recibido en ese momento para proporcionar mejores valores predeterminados. Xml tiene algunos, pero no puede cambiar mucho por razones de compatibilidad. A menudo, con la tecnología de anotaciones, no escribe ninguna anotación, y funciona. Imagine el ahorro de tiempo, especialmente durante el desarrollo.
+6

"no más tipos" ... oh, la ironía ... – skaffman

+0

@skaffman: lo arregló. Espero que mi comentario de revisión te haga aún más feliz :-) –

+0

@Robert gracias por la revisión, iba a hacerlo yo mismo. – KLE

2

No entiendo todo el bombo alrededor de anotación y prefiero HBM por las siguientes razones (Estas razones omiso de las desventajas como errores tipográficos, compilar cheque tiempo para mí):

  1. preocupaciones separación desde/Responsabilidad única: con HBM tiene todo el material relacionado con ORM en HBM. Lógica de entidad y dominio (independiente de la estructura de la tabla) en la clase java. Su base de datos y java se pueden cambiar de forma independiente (solo HBM debe actualizarse).
  2. Su código no está lleno de anotaciones. Prefiero solo mirar la lógica del dominio. Las anotaciones añaden mucho ruido.

Si los HBM están bien organizados (un HBM por clase Java, denominación coherente) es fácil navegar entre los dos. La prueba de Junit y algo de disciplina eliminarán la necesidad de verificar el tiempo de compilación. En cuanto a los valores predeterminados, creo que si hibernate no puede funcionar sin anotaciones, debería poder funcionar sin ningún XML (conceptualmente, no sé si esto es realidad)

Cuestiones relacionadas