Estoy tratando de usar JPA por primera vez en un proyecto Java SE pequeño a mediano (estimo que tendrá unas 50.000 líneas, comentarios incluidos).
Siempre he sido reacio a usar bibliotecas que utilizan archivos declarativos XML porque tenía la sensación de que añadían más burocracia y un aprendizaje adicional a la codificación. Por ello, al principio me gustaba bastante más la idea usar anotaciones en lugar de archivos XML en JPA.
Sin embargo, me gustaría diseñar la aplicación de tal forma que pueda usar una persistencia de base de datos local (que es lo que implementaré ahora) o bien otra basada en servicios web (como futura mejora). Aún estoy aprendiendo, pero parece que para ello debería usar un patrón DAO. Esto no es un requerimiento, sino algo que estaría bien tener ("nice to have").
Mis preguntas son dos:
1) (Esta puede ser muy ingenua por mi parte) He leído que JPA actúa en cierta forma como una capa DAO, pero ¿será capaz JPA de seguir la pista a los objetos entidad que pasan a través de una capa "real" de DAO, usados en un contexto que no sabe de JPA (las clases que implementan la interfaz de usuario, por ejemplo) y que más tarde se devuelven a JPA a través de DAO?
2) ¿Es posible, usando en JPA archivos XML en lugar de anotaciones, dejar los POJO completamente "limpios", de modo que sean utilizables en una arquitectura DAO con proveedores de persistencia tanto JPA como de sevicios web, especialmente de tal forma que la parte de servicios web no tenga que incluir ningún paquete de JPA?
Me imagino que la respuesta a ambas preguntas puede ser "Depende de tu diseño y tu código", y que una forma de descubrirlo puede ser "Comienza a escribir código y luego trata de refactorizar", por lo que busco consejos e impresiones generales, no respuestas definitivas (no voy a volver quejándome dentro de unos meses diciendo "Tú me dijiste..."). :-)
Hola,
Estoy tratando de usar JPA por primera vez en un proyecto Java SE pequeño a mediano (estimo que tendrá unas 50.000 líneas, comentarios incluidos).
Siempre he sido reacio a usar bibliotecas que utilizan archivos declarativos XML porque tenía la sensación de que añadían más burocracia y un aprendizaje adicional a la codificación. Por ello, al principio me gustaba bastante más la idea usar anotaciones en lugar de archivos XML en JPA.
Sin embargo, me gustaría diseñar la aplicación de tal forma que pueda usar una persistencia de base de datos local (que es lo que implementaré ahora) o bien otra basada en servicios web (como futura mejora). Aún estoy aprendiendo, pero parece que para ello debería usar un patrón DAO. Esto no es un requerimiento, sino algo que estaría bien tener ("nice to have").
Mis preguntas son dos:
1) (Esta puede ser muy ingenua por mi parte) He leído que JPA actúa en cierta forma como una capa DAO, pero ¿será capaz JPA de seguir la pista a los objetos entidad que pasan a través de una capa "real" de DAO, usados en un contexto que no sabe de JPA (las clases que implementan la interfaz de usuario, por ejemplo) y que más tarde se devuelven a JPA a través de DAO?
2) ¿Es posible, usando en JPA archivos XML en lugar de anotaciones, dejar los POJO completamente "limpios", de modo que sean utilizables en una arquitectura DAO con proveedores de persistencia tanto JPA como de sevicios web, especialmente de tal forma que la parte de servicios web no tenga que incluir ningún paquete de JPA?
Me imagino que la respuesta a ambas preguntas puede ser "Depende de tu diseño y tu código", y que una forma de descubrirlo puede ser "Comienza a escribir código y luego trata de refactorizar", por lo que busco consejos e impresiones generales, no respuestas definitivas (no voy a volver quejándome dentro de unos meses diciendo "Tú me dijiste..."). :-)
Gracias por anticipado.