Professional Documents
Culture Documents
Entity Beans
Entity EJB
Un EJB Entity representa informacin persistente, que sobrevive un crash o bajada del servidor. La idea es: Solo programar en Java
No usar SQL Eliminar las transformaciones manuales de Datos a Objetos
Estrategias de Diseo
Top Down: Se crea un modelo de objetos y el servidor J2ee lo hace persistente automticamente Bottom Up: Se crea(tiene) un modelo de datos preexistente y se generan EJB especficamente para l. Meet in the Middle Se tienen dos modelos preexistentes y se crea un Mapa respecto de como representar transformacin entre uno y otro.
Primary Keys
A igual que con las bases de datos, se requiere representar la identidad de un Objeto. A veces la identidad de un Objeto es un atributo atmico (long, int) o bsico (String, Date) Otras veces es una composicin de atributos. Cada EJB requiere tener asociado una clase que represente su Llave Primaria.
Uso de EJB
Interfaz Home
La interfaz Home deben proveer cero o ms mtodos create() para crear nuevas instancias.:
Interfaz Home
Tambin debe proveer mtodos find...()
Interfaz de uso
Se debe proveer los mtodos de acceso a propiedades y funcionalidades.
Clase de implementacin
La clase es abstracta No define atributos, pero si getters y setters abstractos. Por cada mtodo create de la interfaz Home debe crearse un mtodo ejbCreate(). create() retorna un referencia (remota o local) ejbCreate() retorna una referencia a la llave primaria Por cada mtodo de la interfaz de uso debe crearse un mtodo ejbCreate(...) equivalente.
ejbCreate y ejbPostCreate
Por cada mtodo ejbCreate debe crearse un mtodo ejbPostCreate(...). Es llamado por contenedor de EJB cuando el objeto tiene su llave primaria asignada. El objeto puede llamar a: getPrimaryKey()
Ciclo de vida
Ejemplo
Crear un CMP Entity EJB para almacenar Variables de configuracin en una tabla. EJB ejb.VariableBean : Implementacin ejb.VariableLocalHome : Interfaz Home ejb.VariableLocal : Interfaz de uso META-INF/ejb-jar.xml Web web.GestorVariables.java index.jsp, verVariable.jsp WEB-INF/web.xml META-INF/manifest.mf EAR META-INF/application.xml
ejb.VariablesLocalHome
Al menos se debiera dar soporte a: Un mtodo create... Un mtodo find...
ejb.VariablesLocal
Ofrece soporte a los getters y setters y otros mtodos de lgica que el programador decida implementar
ejb.VariablesBean
ejb.VariablesBean
Anexar soporte a los mtodos obligatorios y del ciclo de vida.
ejb-jar.xml
web.Gestorvariables
Soporta crear, buscar y borrar
web.GestorVariables
Para borrar se ejecuta remove()
index.jsp
Formulario de bsqueda y creacin
VerVariable.jsp
Presentar la variable
web.xml
Debe declarar la referencia local
application.xml
Nombra los mdulos web y ejb con sus nombres fsicos tal como estarn en el EAR en el orden en que deben cargarse.
Instalacin
En el servidor se debe asociar: Mapping: Como los campos del EJB se deben almacenar en una base de datos El datasource que se debe usar Estrategias de cach Lista de mtodos idempotentes Otros especficos del servidor.
UserTransaction
Para controlar transacciones desde el servlet se puede usar JTA. Usar un objeto UserTransaction que se puede obtener desde JNDI: java:comp/UserTransaction Los mtodos begin, commit y rollback permiten abrir y cerrar transacciones.
findAll
FindXxxx
FindXxxx
Los mtodos findXxx pueden retornar una referencia a la interfaz de uso o un Collection. Si es una referencia a la interfaz de uso, se usa igual que la funcin findByPrimaryKey(...) Si es una coleccin, en ella habr referencias a la interfaz de cada instancia del EJB que cumpla con las condiciones indicadas en el campo ejb-ql.
Llaves compuestas
Llaves compuestas
El descriptor xml no identifica el campo llave. La llave puede tener varios constructores. El mtodo ejbCreate() debe asignar los campos llave y retornar una llave nueva o null (slo CMP).
Ms temas
EJB Query Language Entity EJB con relaciones a otros EJB Entity EJB de tipo BMP