sql >> Base de Datos >  >> RDS >> Mysql

¿Es una buena idea usar Hibernate para representar relaciones de tablas?

Hibernate tiene una curva de aprendizaje pronunciada pero también tiene las siguientes ventajas:

  1. Insertar/Actualizar es más fácil debido a la "comprobación sucia". Una vez que tenga el servicio en su lugar, puede agregar fácilmente nuevos campos sin cambiar una línea en su servicio. Solo necesita agregar nuevas columnas y completarlas e Hibernate se encargará de la parte de persistencia.
  2. Hibernate puede resolver la "actualización perdida" problema debido a su control de concurrencia de bloqueo optimista.
  3. La prueba de integración es más fácil, ya que puede generar el esquema automáticamente para su base de datos en memoria (HSQLDB, H2, Derby)
  4. Tiene un soporte de complemento de almacenamiento en caché (a través de proveedores de almacenamiento en caché de segundo nivel de terceros), algunos proveedores le permiten tener cachés "transaccionales" y "agrupados".
  5. Tiene un soporte AUDIT incorporado (Envers)

Por lo tanto, no es una solución de persistencia 'predeterminada', ya que hay millones de aplicaciones web escritas en PHP sin marco ORM que se ejecutan con éxito en producción.

Creo que Hibernate tiene mucho más sentido para las aplicaciones empresariales donde el almacenamiento en caché, la auditoría y la confiabilidad de la concurrencia son requisitos no funcionales obligatorios.