quién - ¿cómo es que se puede ejecutar un programa escrito en java en diferentes plataformas?
Hibernate: ¿diferencia entre la instrumentación de bytecode y la mejora de bytecode? (1)
Estoy usando Hibernate 4.2 y compilación de instrumentación bytecode para resolver el problema de @OneToOne
que aparece en una relación @Lob
y @Lob
( https://developer.jboss.org/wiki/SomeExplanationsOnLazyLoadingone-to-one )
¿Sabes cuál es la diferencia entre:
Instrumentación de bytecode de Hibernate: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch20.html#performance-fetching-lazyproperties
Mejora del bytecode de Hibernate: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch20.html#bytecode-enhancement
Porque en la documentación de hibernación, está escrito:
EnhancementTask está pensado como un reemplazo total para InstrumentTask. Además, también es incompatible con InstrumentTask, por lo que todas las clases instrumentadas existentes deberán crearse desde el origen de nuevo.
Puedo resolver mi problema mediante el uso de instrumentación bytecode, pero no funciona mediante el uso de la mejora de bytecode. Sabes por qué ?
Tal vez, esta nueva característica no está completamente desarrollada?
Gracias por tu ayuda.
La respuesta es la forma en que se realiza la mejora del código byte. Veamos qué sucede en ambos casos
- Instrumentación de bytecode: Agregar bytecode a una clase Java durante "tiempo de ejecución". No es realmente durante el tiempo de ejecución, sino más durante el tiempo de "carga" de la clase Java. Además, puedes leer esta publicación en detalle.
Y
Mejora de Bytecode: la mejora de Bytecode se puede realizar en tiempo de ejecución o en tiempo de compilación (fuera de línea). Cuando la mejora se realiza en el tiempo de ejecución, las clases persistentes se mejoran a medida que se cargan. Cuando la mejora se realiza sin conexión, los archivos de clase se mejoran durante un paso posterior a la compilación;
En la mayoría de los casos de mejora de bytecode, se realizan en la compilación posterior. Si este es el caso con la mejora del código de bytes de Hibernate, entonces sí, la opción obvia de cambiar el código es la instrumentación del código de bytes.