p_a tema 3
|
|
Título del Test:
![]() p_a tema 3 Descripción: pa_tema 3 |



| Comentarios |
|---|
NO HAY REGISTROS |
|
¿qué anotación se usa en Spring para marcar una clase como servicio local?. @Component. @Repository. @Service. @Bean. ¿Qué anotación de Spring permite inyectar automáticamente un bean en un atributo?. @Inject. @Resource. @Autowired. @Qualifier. ¿cuál es el ámbito (scope) por defecto de los beans en Spring?. Prototype. Request. Session. Singleton. ¿Cuál es la semántica por defecto de @Transactional cuando se invoca un método fuera del contexto de una transacción?. Lanza una excepción. Se ejecuta sin transacción. Crea una nueva transacción. Reutiliza la transacción de la sesión HTTP. @Transactional, ¿qué ocurre si el método lanza una excepción de tipo RuntimeException?. La transacción termina con commit. La transacción termina con rollback. La transacción se pausa y luego se reanuda. La excepción se ignora. ¿Qué ventaja tiene marcar un método con @Transactional(readOnly=true)?. Permite que el método modifique la base de datos más rápido. Evita que se lance cualquier excepción. Permite al gestor de transacciones subyacente optimizar. Convierte automáticamente el método en público. Según los apuntes, si dentro de una transacción se modifica una entidad en memoria (estado "dirty"), ¿es necesario llamar a save del DAO?. Sí, siempre para persistir los cambios. No, Hibernate lanza automáticamente la sentencia UPDATE antes de terminar la transacción. Depende de si la entidad tiene @Version. Solo si la entidad está anotada con @Transactional. ¿Qué es la caché de primer nivel (first-level cache) en JPA/Hibernate?. Una caché compartida entre todas las transacciones. Una caché que persiste después de reiniciar la aplicación. Una caché asociada a la transacción actual que evita consultas repetidas a la BD. Una caché que almacena solo consultas JPQL. ¿Qué problema resuelve el Optimistic Locking en JPA?. El problema de la lectura sucia (dirty read). El problema de la actualización perdida (second lost update). El problema de la lectura fantasma (phantom read). El problema de la lectura no repetible (non-repeatable read). ¿Qué anotación se añade a una entidad para habilitar Optimistic Locking en JPA?. @Lock. @Version. @Optimistic. @SequenceGenerator. En Optimistic Locking, ¿qué ocurre si al hacer una actualización el número de filas afectadas es 0?. La transacción hace commit igualmente. Se lanza una excepción de runtime y se hace rollback. Se reintenta la actualización automáticamente. Se ignora el cambio y continúa. ¿Qué anotación de Spring Boot se usa en una clase de prueba para cargar el contexto completo de la aplicación y permitir inyección de beans?. @SpringBootTest. @ContextConfiguration. @Test. @TransactionalTest. ¿Cuál es el comportamiento por defecto de spring-test cuando un método de prueba está anotado (directa o indirectamente) con @Transactional?. Termina con commit permanente. Termina con rollback después de cada prueba. Lanza una excepción si hay cambios. No ejecuta ninguna operación de BD. ¿Para qué sirve la anotación @ActiveProfiles en una clase de prueba?. Para activar perfiles específicos que permiten usar configuraciones alternativas. Para indicar que la prueba es activa. Para saltarse la ejecución de la prueba. Para definir un perfil de seguridad. Según los apuntes, ¿por qué no es necesario redefinir equals/hashCode en las entidades del caso de estudio?. Porque JPA lo hace automáticamente. Porque cada caso de prueba se ejecuta en una transacción y la caché de primer nivel garantiza que no haya dos instancias con la misma clave en memoria. Porque todas las entidades son inmutables. Porque se usa una base de datos en memoria. ¿Cuál de las siguientes afirmaciones sobre la anotación @Transactional a nivel de clase es correcta?. Solo aplica a métodos privados. Aplica a todos los métodos públicos de la clase. Debe combinarse obligatoriamente con @Autowired. Impide la inyección de dependencias. En el contexto de pruebas con @SpringBootTest, ¿qué ventaja aporta poder inyectar DAOs directamente?. Permite verificar el estado de la base de datos después de cada operación. Evita tener que usar el servicio para todo. Hace las pruebas más rápidas. Es obligatorio para usar @Transactional. ¿Qué sucede si dentro de una transacción se recupera una categoría con categoryDao.save() y luego se recupera con findById?. Se lanza una excepción por clave duplicada. Se ejecuta una consulta SELECT adicional. No se ejecuta SELECT, se devuelve la instancia de la caché de primer nivel. La categoría se pierde al finalizar la transacción. |





