option
Cuestiones
ayuda
daypo
buscar.php

ACCESO A DATOS TEMA 8

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
ACCESO A DATOS TEMA 8

Descripción:
Exploración del mapeo objeto- relacional

Fecha de Creación: 2026/02/11

Categoría: Otros

Número Preguntas: 48

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Cuál es el concepto principal de Hibernate como ORM (Object-Relational Mapping)?. Conectar Java con servidores de aplicaciones web. Persistir valores desde los atributos de clases Java hacia tablas de una base de datos. Generar código SQL automáticamente sin necesidad de consultas. Reemplazar completamente las bases de datos relacionales por bases de datos orientadas a objetos.

¿Qué función tiene un documento de mapeo en Hibernate?. Definir la configuración del servidor de aplicaciones. Determinar cómo obtener los valores desde las clases Java y mapearlos a los campos de la base de datos. Establecer las conexiones de red para acceder a la base de datos. Generar automáticamente las clases Java a partir del esquema de base de datos.

¿Cómo se denominan las clases cuyos objetos serán almacenados en la base de datos mediante Hibernate?. Clases de servicio. Clases de dominio. Clases persistentes. Clases de controlador.

¿Qué significa el acrónimo POJO en el contexto de Hibernate?. Plain Object Java Oriented. Plain Old Java Object. Primary Object Java Object. Persistent Object Java Oriented.

¿Por qué es importante que las clases persistentes de Hibernate sigan el modelo de programación POJO?. Porque es un requisito obligatorio impuesto por Java. Porque permite que Hibernate tenga mejor eficiencia en la persistencia de objetos. Porque las clases POJO pueden ejecutarse en cualquier lenguaje de programación. Porque las clases POJO no necesitan métodos get() y set().

Según las reglas de las clases persistentes en Hibernate, ¿qué característica debe tener el atributo ID?. Debe ser único dentro de la clase pero puede repetirse entre diferentes tablas. Es opcional y solo se usa cuando la tabla no tiene primary key. Será mapeado como primary key en la base de datos. No necesita ser único porque Hibernate usa referencias de objetos.

¿Qué significado tiene la denominación POJO cuando hablamos de clases persistentes de Hibernate?. Es un tipo de objeto especial exclusivo del framework Hibernate que es obligatorio heredar para poder persistir información. Se trata de un objeto Java ordinario, que no requiere heredar de ninguna clase padre de Hibernate ni implementar interfaces propias del framework. Es la nomenclatura que reciben todos los archivos de mapeo de entidades en formato XML. Es el nombre que reciben las clases que únicamente contienen el atributo de clave primaria.

Segun las recomendaciones de diseño, ¿como deben definirse los atributos de una clase persistente POJO?. Todos los atributos deben ser publicos para que Hibernate pueda leer su valor sin metodos adicionales. Los atributos deben ser definidos como privados, y deben contar con sus correspondientes metodos get() y set(). Los atributos deben ser privados y solo pueden tener metodos get(), los metodos set() estan prohibidos. Todos los atributos deben ser estaticos para que Hibernate pueda acceder a su valor en cualquier momento.

(concepto general de ORM): ¿Cual es la funcion principal de Hibernate o de cualquier otro ORM?. Es un gestor de bases de datos que reemplaza completamente a MySQL o PostgreSQL. Se encarga de realizar el mapeo entre los atributos de las clases de Java y los campos de las tablas de la base de datos, para gestionar la persistencia de la informacion. Su única función es cifrar todos los datos que se guardan en la base de datos. Se encarga de eliminar de forma automática los datos obsoletos de las tablas.

¿Cuál es la extensión típica de un fichero de mapeo en Hibernate?. .map.xml. .hibernate.xml. .hbm.xml. .orm.xml.

¿Qué elemento XML es el contenedor principal en un fichero de mapeo de Hibernate?. <mapping>. <java-class>. <hibernate-config>. <hibernate-mapping>.

En el mapeo de una clase, ¿qué atributo del elemento <class> se usa para especificar el nombre de la tabla en la base de datos?. entity. table. db-table. target.

¿Qué elemento se utiliza en el fichero de mapeo para definir la clave primaria de una entidad y cómo se genera?. <key> + <strategy>. <primary> + <algorithm>. <id> + <generator>. <pk> + <auto-increment>.

¿Para qué sirve el atributo type en los elementos <id> y <property> dentro del fichero de mapeo?. Para indicar si el campo es obligatorio o no en la base de datos. Para especificar el tipo de dato SQL al que se convertirá el tipo Java del atributo. Para definir si el campo será indexado o no. Para establecer permisos de acceso al campo en la base de datos.

¿Qué elemento se usa para mapear un atributo simple de una clase Java (como “nombre” o “email”) a una columna en la tabla de base de datos?. <field>. <column>. <attribute>. <property>.

¿Cuál es el elemento raíz / elemento principal de la estructura de cualquier fichero de mapeo XML de Hibernate?. <class>. <hibernate-mapping>. <hibernate-configuration>. <entities-mapping>.

¿Que vinculacion se define al usar el elemento <class> dentro del fichero de mapeo?. La vinculacion entre el nombre de la clase Java persistente (atributo name) y el nombre de la tabla de la base de datos a la que se mapea (atributo table). Unicamente la definicion de la clave primaria de la tabla. El mapeo de todos los atributos normales de la clase a columnas de la tabla. El algoritmo de generacion automatica de claves primarias.

Sobre la creacion de los ficheros de mapeo, ¿cual de las siguientes afirmaciones es correcta?. Es obligatorio escribir siempre todos los ficheros de mapeo a mano, no existen herramientas que puedan generarlos. Se pueden escribir a mano, pero también existen herramientas capaces de generarlos automáticamente como Xdoclet, Middlegen o AndroMDA. Los ficheros de mapeo son generados automáticamente por Hibérnate en el primer arranque de la aplicación sin necesidad de ninguna configuración. Los ficheros de mapeo solo se pueden generar si usamos anotaciones JPA en lugar de XML.

¿Cuál es la función principal del objeto Session en Hibernate?. Configurar los parámetros de conexión a la base de datos. Establecer una conexión física con la base de datos para interactuar con ella. Generar automáticamente las tablas en la base de datos. Compilar las clases Java a bytecode optimizado.

¿En qué estado se encuentra una nueva instancia de una clase persistente que aún no está asociada a ninguna sesión ni tiene representación en la base de datos?. Persistent. Detached. Transient. Disconnected.

¿Qué caracteriza a una instancia en estado Persistent en Hibernate?. No tiene identificador ni representación en base de datos. Está asociada a una sesión, tiene representación en base de datos y posee identificador. La sesión ya ha sido cerrada pero mantiene los datos en caché. Solo existe en memoria y nunca será almacenada.

¿Qué ocurre con una instancia Persistent cuando se cierra la sesión de Hibernate?. Se elimina automáticamente de la base de datos. Permanece en estado Persistent indefinidamente. Se convierte en una instancia Detached (separada). Pasa a estado Transient y pierde todos sus datos.

¿Qué acciones se deben realizar si el objeto Session lanza una excepción durante una transacción?. Reiniciar la aplicación completa. Ignorar la excepción y continuar con la siguiente operación. Hacer roll-back de la transacción y descartar la sesión. Cerrar la conexión a la base de datos y volver a abrirla.

¿Cuándo es serializable una instancia de Session en Hibernate?. Siempre, por defecto. Nunca, las sesiones no pueden ser serializables. Solo si sus clases persistentes son serializables. Solo cuando se configura explícitamente en el fichero de mapeo.

Un objeto recién creado con new en Java, que aún no ha sido asociado a una sesión de Hibernate ni guardado en la base de datos, se encuentra en qué estado?. Persistent. Detached. Transient. Removed.

Cuando un objeto en estado Transient es guardado en la base de datos mediante session.save(), ¿a qué estado pasa?. Detached. Persistent. Removed. Transient.

¿Cuál es la diferencia fundamental entre los métodos clear() y close() de Session?. clear() cierra la conexión a la base de datos, close() solo vacía la caché. clear() elimina completamente la sesión, close() finaliza la sesión y libera la conexión JDBC asociada. No tienen diferencia, son alias del mismo método. clear() deshace la transacción actual, close() confirma los cambios automáticamente.

¿Qué función tiene el método refresh(Object objeto) en Hibernate?. Actualiza la base de datos con los cambios que hemos hecho en el objeto en memoria. Vuelve a leer y sobrescribe el estado del objeto en memoria con los datos actuales de la base de datos. Refresca la conexión a la base de datos para evitar timeouts. Reconecta un objeto en estado Detached a la sesión actual.

Si necesito obtener el identificador (primary key) de una entidad asociada a la sesión actual, ¿Qué método debo usar?. getId(Object objeto). getIdentifier(Object objeto). getPrimaryKey(Object objeto). findId(Object objeto).

¿Qué método debes llamar para empezar cualquier unidad de trabajo con transacciones en Hibernate?. startTransaction(). beginTransaction(). initTransaction(). newTransaction().

¿Cuál es la diferencia entre los métodos isOpen() e isConnected()?. isOpen() comprueba si la sesión no ha sido cerrada, isConnected() comprueba si mantiene la conexión física a la base de datos. Son alias del mismo método. isConnected() comprueba si la transacción está activa, isOpen() comprueba si existen objetos persistentes. isOpen() devuelve true solo durante la ejecución de una consulta.

¿Qué método devuelve la factoría que creó la sesión actual?. getFactory(). getSessionFactory(). getHibernateFactory(). getEntityManagerFactory().

¿Cuál es la función del método beginTransaction() de la interfaz Session?. Elimina todos los objetos de la sesión actual. Comienza una unidad de trabajo y devuelve el objeto Transaction asociado. Cierra la sesión y libera la conexión JDBC. Refresca el estado de un objeto desde la base de datos.

¿Qué hace el método clear() de la interfaz Session?. Cierra la sesión y libera recursos. Elimina completamente todos los objetos de la caché de la sesión actual. Comienza una nueva transacción. Refresca todos los objetos persistentes.

¿Cuál es la diferencia CRÍTICA entre Session.get() y Session.load() cuando no encuentran la entidad?. Ambos devuelven null si no encuentran el objeto. get() devuelve null, load() lanza ObjectNotFoundException. get() lanza excepción, load() devuelve null. Ambos lanzan la misma excepción.

¿Qué diferencia existe entre Session.persist() y Session.save() al guardar un objeto?. persist() devuelve el ID, save() es void. persist() es void y no devuelve nada, save() devuelve un Serializable con el ID. No hay diferencia, son alias del mismo método. persist() solo funciona con transacciones activas, save() no necesita transacción.

¿Qué método debes usar para actualizar un objeto cuando NO estás seguro de si ya hay otra instancia persistente en la sesión?. update(). merge(). save(). refresh().

Para borrar un objeto persistente de la base de datos, ¿Qué método usas?. remove(). delete(). destroy(). drop().

¿Cuál es la principal diferencia de comportamiento entre merge() y update()?. merge() devuelve void, update() devuelve el objeto actualizado. merge() devuelve el objeto persistente actualizado, update() es void. merge() solo inserta, update() solo actualiza. No hay diferencia funcional.

¿Cuál es la diferencia fundamental entre HQL (Hibernate Query Language) y SQL?. HQL opera sobre tablas y columnas, mientras que SQL opera sobre objetos y propiedades. HQL opera sobre objetos persistentes y sus propiedades, mientras que SQL opera sobre tablas y columnas. HQL se ejecuta directamente en la base de datos, mientras que SQL requiere una traducción previa. No hay diferencias, son el mismo lenguaje con nombres distintos.

¿Qué método del objeto Session se utiliza para ejecutar sentencias SQL nativas (como procedimientos almacenados)?. createQuery(). createNativeQuery(). createSQLQuery(). executeSQL().

¿En qué casos se recomienda usar consultas SQL nativas en lugar de HQL?. Siempre, porque son más rápidas. Cuando necesitamos usar funcionalidades específicas de la base de datos o procedimientos almacenados. Solo cuando se trabaja con bases de datos muy antiguas. Nunca, siempre se debe usar HQL.

¿Qué representa una transacción en el contexto de Hibernate y bases de datos?. Una consulta simple de lectura de datos. Una unidad de trabajo donde si un paso falla, toda la operación falla (atomicidad). Un método específico para cerrar la conexión a la base de datos. Una herramienta de depuración de errores en SQL.

¿Cuál es la diferencia entre commit() y rollback() en la interfaz Transaction?. commit() inicia la transacción, rollback() la finaliza. commit() guarda permanentemente los cambios, rollback() cancela todos los cambios de la transacción. commit() solo funciona con consultas SELECT, rollback() con INSERT/UPDATE/DELETE. No hay diferencia, ambos métodos hacen lo mismo.

¿Qué método usarías para verificar si una transacción sigue activa en un momento dado?. isActive(). isRunning(). isAlive(). isInProgress().

Las propiedades ACID de las transacciones incluyen Atomicidad, Consistencia, Aislamiento y: Integridad. Durabilidad. Disponibilidad. Escalabilidad.

¿Qué propiedad fundamental de las transacciones (correspondiente a la A de las propiedades ACID) define que si uno de los pasos de la unidad de trabajo falla, la totalidad de la transacción falla?. Durabilidad. Atomicidad. Aislamiento (Isolation). Consistencia.

¿Qué método debemos usar si queremos comprobar en tiempo de ejecución si una transacción sigue activa y en ejecución?. wasCommited(). wasRolledBack(). isAlive(). begin().

Denunciar Test