it-swarm-es.com

CMP Frijoles de entidad como una solución de orm "ingenuo"

Estaba navegando a través de esta charla sobre "históricamente ideas malas" sobre la historia de la informática, y encontré una presentación interesante sobre el aumento y la caída de la Java Enterprise Iniciativas. La diapositiva # 16 agarró mi atención sugiriendo que la persistencia administrada del contenedor es una "solución de ORM ingenua". Por supuesto, asumo que el presentador hizo un análisis en profundidad en vivo del problema, que falta en la diapositiva. Así que me quedé intrigado por esa afirmación. ¿Son los frijoles de la entidad CMP solo una pesada ingeniería ingenua?

Aparte de cualquier sesgo de el autor (es) de la presentación , ¿qué constituiría una solución de ORM más adecuada en el dominio de los idiomas como Java o C #? Soy No pidiendo herramientas o marcos específicos, pero mejores enfoques.

4
Humberto

En general, una buena solución de ORM debería ser fácil de usar y entender. Debe promover el uso de buenos patrones de diseño (DAOS, DTOS, carga perezosa, servicios, límites de transacción, facilidad de configuración, etc.). No debería ser invasivo, es decir, no debería obligarlo a extender clases especiales o implementar interfaces especiales.

Las especificaciones de EJB cayeron mucho en los primeros días que llevaron a la migración masiva a los gustos de la primavera y el hibernado. EJB1 no definió adecuadamente los campos de CMP en el frijol, un tipo de EJB2 implícito que deberían ser accesorios abstractos en lugar de campos reales, que era simplemente extraño, y no fue hasta EJB3 que se creó algo cerca de lo que todos buscados. Para entonces, fue demasiado tarde, todos creían que el EJB chupara y tomó el JPA y JTA JCRS pondrían las cosas bien.

EJB1 y 2 generalmente obligaron al desarrollador a poner toda su configuración de persistencia en un grupo de archivos XML, alejados del código real que lo estaba utilizando. Esto lleva a un montón de confusión y código de buggy. Otros marcos de ORM aprendieron de esto y decidieron usar anotaciones en su lugar. Gran victoria para ellos.

EJB1 y 2 tuvieron un apoyo muy limitado para diferentes tipos de relaciones y cómo podrían implementarse en la base de datos relacional subyacente. Todos los tipos de interfaces especiales tenían que adherirse y el código resultante era difícil de entender.

De todos modos, todo lo que está en el pasado y podemos esperar un futuro brillante con los gustos de Hibernate implementando JPA y JTA. Todo muy armonioso.

1
Gary Rowe