Diferencias entre ArrayList y TreeSet
Un ArrayList permite la duplicación y mantiene el orden de inserción de los elementos. Un TreeSet no permite la duplicación y no mantiene el orden de inserción.
Mapeo Relacional de Objetos
Es un mecanismo sofisticado para mapear objetos Java en memoria a tablas en una base de datos. Permite la persistencia de objetos en la base de datos relacional, facilita consultas complejas y cada instancia del objeto corresponde a un registro en la base de datos.
Cuándo usar EJB en una aplicación
Se debe usar EJB cuando:
- La aplicación necesita ser escalable para manejar un gran número de usuarios o se distribuye en múltiples máquinas.
- Se requieren transacciones para garantizar la integridad de los datos.
- La aplicación tiene un gran número de clientes.
Beans de Sesión y MessageDrivenBean
Beans de Sesión (Session Beans)
No son persistentes y se utilizan para gestionar las interacciones entre beans de entidad, representando un flujo de trabajo o proceso de negocio.
MessageDrivenBeans
Se utilizan para la comunicación con otras aplicaciones a través de un servicio de mensajería (JMS), recibiendo mensajes de forma asincrónica.
Unidad de Persistencia en JPA
Es un conjunto de clases mapeadas a una base de datos relacional. Esta configuración se realiza a través de un archivo descriptor de despliegue llamado persistence.xml, almacenado en la carpeta META-INF, que puede contener la configuración de múltiples unidades de persistencia.
CRUD: Operaciones de Persistencia
CRUD es un acrónimo que representa las operaciones básicas de persistencia en un repositorio de datos:
- Crear: INSERT
- Recuperar (Leer): SELECT
- Actualizar: UPDATE
- Eliminar: DELETE
POJO (Plain Old Java Objects)
Son objetos Java con un diseño simplificado en comparación con, por ejemplo, los EJB. Un JavaBean es un POJO que sigue definiciones rígidas de estructura, como un constructor por defecto sin argumentos y métodos get y set para sus atributos.
Contexto de Persistencia
Es un entorno que consiste en el conjunto de instancias de entidades administradas por el administrador de entidades.
Diferencias entre Beans de Sesión con Estado y sin Estado
StatefulSessionBean mantiene el estado de conversación entre las llamadas de un cliente, ya que el servidor no puede mantener pools de instancias. StatelessSessionBean no mantiene ningún estado conversacional entre cliente y servidor y mantiene pools de instancias.
Preguntas de Selección Múltiple
1. ¿Cuál de las siguientes importaciones es requerida para los oyentes de aplicaciones?
d. import java.awt.event.*;
2. ¿Cuál es el método utilizado para cargar el controlador JDBC?
b. Class.forName()
3. ¿Qué anotación se debe utilizar en la interfaz de SessionBeans para definir que sus métodos estarán disponibles localmente?
a. @Local
4. ¿Cuál de los siguientes servidores es un ejemplo de servidor EJB utilizado en la capa de negocio?
d. JBoss
5. ¿Qué anotación se debe utilizar para declarar una clase como clase persistente?
b. @Entity
6. ¿Cuáles son los tipos de beans de sesión?
c. Stateful y Stateless
7. ¿Cuál comando se usa para deshacer los cambios en la base de datos?
d. em.getTransaction().rollback()
8. ¿En qué capa se encuentra el servidor EJB?
b. Capa de Negocios
9. Sobre la colección TreeSet, se puede decir que:
b. Es un conjunto de elementos desordenados, en el que no se repiten los elementos.
10. Sobre la TreeSet, se puede decir que:
b. Conjunto de elementos desordenados. Hay elementos no repetidos.
11. ¿Qué se utiliza para ordenar una lista?
a. Collections.sort(lista)
12. ¿Qué hace el comando <property name=»toplink.ddl-generation» value=»create-tables»/> declarado en el persistence.xml?
b. Crea una nueva tabla en la base de datos cuando no existe, si no, simplemente se actualiza.
13. ¿Cuál método se utiliza para devolver un registro de la base de datos y convertirlo en un objeto, en función de su entidad de destino?
a. Entidad e = em.find(Entidad.class, clave)
14. ¿Cuál anotación se utiliza para definir un atributo que no se almacena en la base de datos?
c. @Transient
15. ¿Qué hace el comando <persistence-unit name=»persistencia»/> declarado en el persistence.xml?
b. Define el nombre de la unidad de persistencia para ser utilizado por el método createEntityManagerFactory(), que contiene la configuración de la base de datos.
16. ¿Cuál comando se utiliza para borrar una entidad?
c. em.remove(e)
17. Un bean de sesión sin estado no mantiene un estado de conversación con el cliente, solo durante el estado de llamada se mantiene, entonces se retira:
a. Stateless Session Bean
18. ¿Cuál de los siguientes comandos crea una fábrica de administradores de entidades?
a. EntityManagerFactory emf = Persistence.createEntityManagerFactory(«prueba»);
19. ¿Cuáles opciones tenemos para acceder a una base de datos utilizando JPA?
b. SQL nativo y JPQL
20. ¿Cuál de las siguientes afirmaciones NO es una justificación para el uso de EJB?
a. Cuando la aplicación debe ser implementada en tres capas, facilitando el mantenimiento y la distribución.
21. Estados del ciclo de vida de una entidad:
b. new, Managed, eliminado, Independiente
22. Métodos de la interfaz del administrador de entidades:
d. refresh(), merge(), persist(), remove()
23. Dentro del contexto de persistencia, cuando una entidad no está siendo controlada por el EntityManager, o los cambios en la entidad no se reflejan en la base de datos, decimos que está en el estado:
a. DETACHED