Ejemplo de uso:
Quiero poner en los campos de clase una anotación personalizada @MyContainer y luego agregar automáticamente todas las anotaciones Hibernate relevantes de dichos campos (dependiendo del tipo de campo y las propiedades).
En adicional, necesito agregar la anotación JAXB XmlType a la clase y basar el nombre del tipo en el nombre de la clase.
Me gustaría añadir anotaciones adicionales a campos basados en sus tipos, etc. Todas las anotaciones añadidas deberían estar disponibles en tiempo de ejecución (Así hibernate/JAXB puede encontrarlas).
Soy consciente de las siguientes opciones:Agregando anotaciones programáticas a una clase Java
- Pre-procesamiento fuente de la clase (mala opción)
- de procesamiento durante la compilación con las API javax.annotation.processing
- manipulación post recopilatorio con herramientas como Java Ayudar
- manipulación durante la carga de clases con las API java.lang.instrument
- hacerlo con AspectJ (no lo suficientemente potente)
Mis objetivos principales son:
- mantendrá siempre la sincronización entre la clase y la fuente para depurar
- de apoyo que trabajan tanto de Maven e IDE (Eclipse/IntelliJ)
Voy a apreciar si las personas que Ya hecho, tales cosas pueden recomendar el mejor enfoque para tal tarea (y quizás riesgos potenciales).
¿Qué ocurre si no se generan anotaciones, sino que se generan archivos XML de asignación de hibernación (hbm.xml) que se pueden cargar mediante la configuración de hibernación? – Strelok
Gracias, es una buena idea, pero prefiero la opción de anotación en mi caso ya que también necesito generar una anotación JAXB (y tal vez otras en el futuro). –