Las 20 preguntas y respuestas más comunes de la entrevista de Hibernate [para principiantes y experimentados]

Publicado: 2020-12-31

Durante mucho tiempo, Java ha ocupado una de las posiciones más altas en la lista de lenguajes de programación más populares. Naturalmente, al ser un lenguaje de programación de alta prioridad preferido por los desarrolladores de todo el mundo, Java está acompañado por una colección masiva de herramientas, bibliotecas y marcos. En esta publicación, vamos a hablar sobre un marco Java popular, Hibernate.

Cualquiera que haya trabajado o trabaje con Java conoce muy bien Hibernate y sus poderes. Sin embargo, permítanos desglosarlo para aquellos de ustedes que acaban de encontrar este nombre: Hibernate.

Tabla de contenido

¿Qué es Hibernate?

Hibernate es una herramienta ORM (mapeo relacional de objetos) diseñada exclusivamente para Java. en otras palabras, ofrece un marco para ayudar a mapear un modelo orientado a objetos a una base de datos relacional. Hibernate se enfoca principalmente en el mapeo de clases Java a tablas de bases de datos y el mapeo de tipos de datos Java a tipos de datos SQL .

Hibernate también amplía los servicios de consulta y recuperación de datos. Está escrito en Java y está basado en JVM. Hibernate ofrece implementaciones de referencia de la API de persistencia de Java, lo que lo convierte en una opción fantástica para ORM (mapeo relacional de objetos). Podemos usar la API de persistencia de Hibernate para operaciones CRUD

Originalmente, Hibernate fue diseñado para servir como una mejor y más simple alternativa de EJB2 (Enterprise Java Beans versión 2). Hoy, Hibernate se jacta de ser una de las herramientas ORM más utilizadas para aplicaciones Java.

Se utiliza ampliamente para desarrollar aplicaciones empresariales basadas en Java para operaciones de bases de datos. Además, la API de persistencia de Hibernate es excelente para operaciones CRUD.

Ahora que tiene algunos conocimientos previos de Hibernate, ¡conozcamos un poco mejor esta herramienta ORM con estas preguntas de la entrevista X Hibernate!

Inscríbase en cursos de desarrollo de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Preguntas y respuestas de la entrevista de Hibernate

1.¿Qué es ORM?

ORM (Mapeo relacional de objetos) se refiere a una técnica de mapeo de objetos con los datos almacenados en una base de datos. El objetivo de ORM es simplificar la creación, el acceso y la manipulación de datos.

2.¿Qué es JPA?

La API de persistencia de Java (JPA) es una especificación que asigna estándares y funcionalidades a las herramientas ORM. Puede acceder a las clases e interfaces de JPA desde el paquete javax.persistence . Todas las especificaciones de JPA se definen mediante anotaciones en el paquete javax.persistence. La ventaja de usar anotaciones JPA es que le permiten escribir código independiente de la implementación.

3.¿Cuáles son las anotaciones importantes de JPA utilizadas para el mapeo de Hibernate?

Hibernate admite anotaciones JPA junto con muchas otras anotaciones a las que puede acceder a través del paquete org.hibernate.annotations. Aquí hay siete de las anotaciones JPA más importantes:

javax.persistence.Entity : se usa en combinación con clases modelo para declararlas como beans de entidad.

javax.persistence.Table : se utiliza con beans de entidad para definir el nombre de la tabla correspondiente en una base de datos.

javax.persistence.Access : se utiliza para especificar el tipo de acceso, el campo o la propiedad. El valor predeterminado para esta anotación es campo.

javax.persistence.Id : define la clave principal en el bean de entidad.

javax.persistence.EmbeddedId : se utiliza para especificar una clave principal compuesta en el bean de entidad.

javax.persistence.Column : especifica el nombre de la columna en la tabla de la base de datos.

javax.persistence.GeneratedValue : define la estrategia necesaria para generar la clave principal.

4.Definir HQL

HQL significa Lenguaje de consulta de Hibernate. Es un lenguaje de consulta orientado a objetos, independiente de la base de datos.

5.¿Cómo realizaría el mapeo en Hibernate?

La función de mapeo de asociaciones de Hibernate facilita el mapeo al admitir las cuatro asociaciones estándar, al igual que un modelo de base de datos relacional:

  • Asociaciones uno a uno
  • Asociaciones de uno a muchos
  • Asociaciones de muchos a uno
  • Asociaciones de muchos a muchos

Cada una de estas asociaciones se puede mapear como asociación unidireccional o bidireccional.

6. Nombre las principales interfaces/componentes de Hibernate.

Hibernate tiene seis interfaces principales: Configuración, SessionFactory, Sesión, Consulta, Criterios y Transacción.

7.¿Puedes crear una consulta SQL en Hibernate?

Sí, puede crear consultas SQL en Hibernate. Para crear una consulta SQL, debe utilizar la siguiente sintaxis:

Sesión.createSQLQuery

8.¿Qué es el archivo de configuración de Hibernate?

El archivo de configuración de Hibernate almacena configuraciones específicas de la base de datos. Se utiliza para inicializar la interfaz SessionFactory. Este archivo también contiene otra información relevante, como la información del dialecto, que permite a Hibernate conocer el tipo de base de datos y los detalles del archivo/clase de asignación.

9.¿Qué es la clase persistente?

En Hibernate, las clases cuyos objetos e instancias se almacenan en las clases de la base de datos se denominan clases persistentes.

10.Definir sesión

La interfaz de sesión se encuentra entre Hibernate y una capa de aplicación Java. Se utiliza principalmente para realizar operaciones de base de datos. La sesión ayuda a establecer y mantener una conexión entre una aplicación de Hibernate y una base de datos. Ofrece diferentes métodos para realizar operaciones de creación, lectura, actualización y eliminación de objetos persistentes.

Además, Session actúa como una fábrica de consultas, criterios y transacciones, lo que significa que amplía los métodos de fábrica para devolver estas instancias. Puede usar el objeto de sesión para crear criterios y ejecutar consultas HQL y consultas nativas de SQL.

11.Definir fábrica de sesiones.

En Hibernate, SessionFactory es la clase de fábrica utilizada para acceder a los objetos de sesión. Lee los parámetros de configuración de Hibernate y se conecta a la base de datos para buscar objetos de sesión. SessionFactory es esencialmente una fábrica de Session y proporciona la instancia de Session.

Una vez que se crea SessionFactory, su estado interno es fijo, haciéndolo inmutable. El estado interno de SessionFactory contiene los metadatos completos de Object/Relational Mapping.

12. Distinga entre el archivo de configuración de Hibernate y el archivo de mapeo de Hibernate.

El archivo de configuración de Hibernate incluye configuraciones específicas de la base de datos e información del dialecto. Se utiliza para inicializar SessionFactory. Puede acceder a las credenciales de la base de datos o a la información de recursos de JNDI desde el archivo XML de configuración de Hibernate.

Por otro lado, el archivo de asignación de Hibernate se utiliza para definir las asignaciones de columnas de la tabla de la base de datos y los campos de bean de entidad. El archivo de mapeo es el núcleo de cada aplicación de Hibernate. Contiene una asignación de un nombre de clase POJO a un nombre de tabla y nombres de variables de clase POJO a nombres de columna de tabla.

13.¿Qué son los POJO?

POJO es un acrónimo de Plain Old Java Object. Esencialmente, los POJO son beans de Java diseñados con métodos getter y setter estándar para propiedades individuales. La ventaja de usar POJO en lugar de clases de Java es que puede escribir código limpio, preciso y eficiente.

14. Asigne un nombre a los componentes clave de un objeto de configuración de Hibernate.

Un objeto de configuración de Hibernate tiene dos componentes clave

  1. Conexión de base de datos que es administrada por uno o más archivos de configuración.
  2. Configuración de mapeo de clases que se utiliza para establecer la conexión entre las clases de Java y las tablas de la base de datos.

15.¿Qué es el dialecto de Hibernate?

Hibernate Dialect especifica el tipo de base de datos que desea utilizar. Le permite a Hibernate conocer esta información por adelantado para generar sentencias SQL apropiadas que se adapten mejor a su tipo de base de datos preferida/especificada.

16. Defina "Almacenamiento en caché de Hibernate".

El almacenamiento en caché de Hibernate es el proceso de consultar datos para mejorar la velocidad y el rendimiento de una aplicación de Hibernate. El objetivo es minimizar el número de consultas a la base de datos, lo que se traduce en una reducción del tiempo de procesamiento.

EHCache es la función de caché predeterminada de Hibernate.

17.¿Qué son las cachés de primer y segundo nivel?

En Hibernate, el caché de primer nivel se refiere al caché de sesión. Es la caché obligatoria por la que deben pasar todas las solicitudes. El segundo caché es un caché opcional que almacena objetos en caché a través de las sesiones.

Puede configurar una memoria caché de segundo nivel basada en una recopilación previa y por clase. Como regla general, se debe consultar la memoria caché de primer nivel antes de intentar ubicar un objeto en la memoria caché de segundo nivel.

18.Explicar las diferentes etapas de un bean objeto/entidad.

Una instancia de bean objeto/entidad generalmente existe en cualquiera de las siguientes tres fases:

  • Transitorio : en esta fase, un objeto nunca persiste ni se asocia con ninguna sesión. Puede convertir instancias transitorias en persistentes mediante las funciones save(), persist() o saveOrUpdate(). Para revertir una instancia persistente a transitoria, puede usar el comando delete().
  • Persistente : un objeto alcanza el estado persistente cuando se asocia con una sesión única. Todas las instancias devueltas por las funciones get() o load() están en estado persistente.
  • Separado : cuando un objeto persistente no se asocia con ninguna sesión, alcanza el estado separado. Puede convertir una instancia separada en persistente a través de las funciones update(), saveOrUpdate(), lock() o replicate().

19.¿Cuál es el propósito de Dirty Checking en Hibernate?

La función automática de verificación sucia de Hibernate llama automáticamente a la declaración de actualización en los objetos modificados en una transacción, lo que ayuda a los desarrolladores a evitar acciones de escritura que consumen mucho tiempo.

La verificación sucia solo modifica/actualiza los campos que requieren acción mientras mantiene intactos los otros campos. En general, reduce el tiempo de escritura de la base de datos.

20. Defina "Administración de transacciones".

La gestión de transacciones es una característica del marco Spring. Es básicamente el proceso de administrar un conjunto de comandos/declaraciones. En Hibernate, la interfaz de transacciones realiza la gestión de transacciones manteniendo la abstracción de la implementación de transacciones (JTA, JDBC). Puede iniciar una transacción llamando al método session.beginTransaction() .

Lea también: Preguntas y respuestas de la entrevista de Java

Conclusión

Para concluir, a pesar de que estas veinte preguntas de la entrevista de Hibernate rascan la superficie del tema en cuestión, ¡esperamos que esto lo ayude a romper el hielo con Hibernate y profundizar en él!

¡Le deseamos todo lo mejor para comenzar su carrera en Java!

Aterrice en el trabajo de sus sueños

Aplicar ahora para Maestría en Ingeniería de Software