No he trabajado con Hibernate. Tengo un poco de experiencia en Java. Estaba pasando por una bestia de una aplicación java creada por Oracle (Retail Price Management). Esperaba que gran cantidad de código SQL incrustado allí, ya que la aplicación hace un uso intensivo de la base de datos. ¡Pero para mi sorpresa, NO código SQL incorporado! hasta aquí. Descubrí que estaba usando lo que se llama "Hibernar" del lote de archivos .hbm.xml
. ¿Es una marca registrada de los programas de Java que usan hibernación o tal vez no he visto la base de código completa ?. ¿Alguien podría aclararme cómo es posible? Gracias.¿Los programas de hibernación de Java no tienen código sql?
Respuesta
Hibernate, como todas las herramientas ORM, de hecho reduce o elimina la necesidad de utilizar SQL prima en código Java, debido a lo siguiente:
- muchas asociaciones entre varias entidades se registran en el mapeo de Hibernate, por lo que estos son recogidos automáticamente por Hibernate, es decir, si tiene una relación de agregación entre dos clases en el lado Java, esto puede correlacionarse como una relación de clave externa en el DB e Hibernate, cada vez que se carga una instancia de clase A, puede cargar automáticamente el También se pueden realizar muchas consultas en el propio lenguaje de consulta HQL de Hibernate, o usando su API de Criteria. También se pueden realizar muchas consultas en la clase B,
- .
Debajo del capó Hibernate genera SQL para comunicarse con el DB, pero esto no es visible en el lado de Java. Sin embargo, se puede ver en los registros, si está habilitado.
Debido a esto, los programas que usan Hibernate muy raramente necesitan usar JDBC o SQL directamente. Las excepciones generalmente se agrupan en esquemas DB heredados "difíciles" que Hibernate no puede manejar por completo.
Porque ese es el propósito de utilizar Hibernate o cualquier otro marco de mapeo relacional de objetos.
Hibernate genera SQL para todas sus operaciones de base de datos estándar. Comprende diferentes dialectos de SQL, y los archivos de mapeo (.hbm.xml) le informan sobre la estructura de la base de datos para que sepa cómo construir sus consultas. Hay una configuración showSql que puede activar si desea verla emitiendo su SQL generado mientras se ejecuta.
Hibernate es un asignador de objetos relacionales (ORM). Los ORM se utilizan para ocultar los feos detalles de la incompatibilidad SQL [sic] entre las bases de datos de su programa: usted define sus tablas y las asigna a una jerarquía de objetos (los archivos .hbm.xml
) y luego Hibernate hace el resto. Por lo tanto, la mayoría de los programas que usan Hibernate no verán una sola frase de SQL, a menos que haya una razón específica para ejecutar una consulta complicada.
Hibernate es una herramienta o tecnología que se ocupa de la interacción entre la base de datos y la aplicación. Debe indicarle la estructura de la aplicación y la base de datos, esto es lo que está en los archivos .hbm.xml.
El SQL es generado por Hibernate en tiempo de ejecución (tipo de)
Digamos que tienes una clase Fruit
, y objetos de esto es persistido en una tabla T_FRUIT
.
Usted dice esto para hibernar, a través de los archivos .hbm.xml
. Que hay una tabla T_FRUIT
, esta tabla está representada por la clase Fruit y los campos de la clase Fruit corresponden a las columnas de la tabla T_FRUIT
.
Y luego sabe que cada vez que intenta guardar una fruta, debe insertar/actualizar a la tabla T_FRUIT
.
Cuando desee crear una manzana, cree un objeto de fruta correspondiente a manzana y guarde "guardar esta fruta". Hibernate se encarga de persistir.
Puede tener relaciones definidas entre tablas, e Hibernate es lo suficientemente inteligente como para persistir en varias tablas.
Cuando trae una fruta, hibernate obtiene los detalles de la fruta y sus hijos también (datos de las tablas de referencia). Y puede decir si desea buscar a todos los niños de una vez, o cuando sea necesario.
Y así sucesivamente. El objetivo es facilitarle la vida y mantener el código, fácil de leer, portátil, ...
Con esta información, permítame redirect you.
- 1. Benchmarking de programas Java
- 2. ¿Los programas en lenguajes funcionales tienen más probabilidades de tener desbordamientos de pila?
- 3. ¿Los métodos formales de verificación de programas tienen un lugar en la industria?
- 4. visualizador de código para programas de Raqueta
- 5. ¿Por qué tantos programas tienen un setup.exe y un setup.msi?
- 6. ¿Tubo roto ya no termina los programas?
- 7. ¿Por qué los programas en entornos tipo Unix tienen números después de su nombre?
- 8. Persistir los campos de recopilación con hibernación
- 9. ¿Los paquetes no tienen que coincidir con los subdirectorios en los que se encuentra el archivo java?
- 10. Características del lenguaje Java que no tienen equivalente en C#
- 11. Criterio de hibernación Alias de proyección no se usa
- 12. Ejecutando programas Java a través de Python
- 13. En Eclipse, los cambios de mi código fuente no tienen efecto
- 14. ¿Todos los programas en Java requieren una clase?
- 15. ¿Es posible ejecutar programas Java-GUI bajo los sistemas Dos
- 16. ¿Ejecuta simultáneamente los programas Java ejecutados en la misma JVM?
- 17. En Java, ¿los miembros de la clase estáticos están compartidos entre los programas?
- 18. ¿Por qué los programas de estilo rápido son más cortos que los programas de estilo defensivo?
- 19. prueba de los programas de python interactivos
- 20. data 'security' con java e hibernación
- 21. Expresiones en los criterios de hibernación
- 22. Recomendaciones de diseño de diseño de programas Java?
- 23. ¿Por qué los registros de Delphi no tienen herencia?
- 24. ¿Por qué los controles WPF no tienen propiedad de etiqueta?
- 25. Por qué los métodos de interfaz no tienen cuerpo
- 26. ¿por qué los archivos de encabezado STL no tienen extensión?
- 27. ¿Cómo acelerar los programas WPF?
- 28. ¿Funcionará valgrind para los programas de Daemon?
- 29. PyQT ¿Quitar los programas Barra de título?
- 30. ¿Cómo interactúo con los programas de Windows