You are on page 1of 33

Conxenedor EJB

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

Los servidores J2EE ofrecen el servicio de persistencia y transacciones,normalmente a travs de RDBMS

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.

Tipos de Entity EJB

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.

Querys y mtodos find


Para dar soporte a otros mtodos Find adems de findByPrimaryKey se puede: Usar Finders descritos en ejb-jar.xml. Se usa una sintaxis similar a SQL. Se pueden programar querys de SQL y ejecutarlos en mtodos ejbFind(...) dentro del Bean. Para ejecutar bsquedas des dentro del Bean se pueden usar mtodos abstract ejbSelect(). Requiere configurar el deployment descriptor y tambin la interfaz Home.

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

Temas relevantes a estudiar


EJB Query Language Entity EJB con relaciones a otros EJB Entity EJB de tipo BMP

You might also like