Está usted en Indice > Construcción > Lenguajes > Java > Lecciones y Paso a Paso > Qué Puedes Hacer Con EJB3 (primera parte)
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Qué Puedes Hacer Con EJB3 (primera parte) (2)

Finalmente,
consideramos dos arquitecturas físicas reconocidas. El caso
co-localizado - al que consideramos mas importante, al menos para
aplicaciones web típicas - tiene una capa de presentación actuando como cliente
local de la capa de negocio. El caso remoto tiene un cliente remoto
(por ejemplo, un motor de servlets o un cliente swing ejecutándose en diferentes
capas físicas) accediendo a la capa de negocio.

Primero necesitamos
datos. La interacción con datos relacionales es fundamental en casi cualquier
aplicación web o empresarial. Las aplicaciones que implementan lógica de negocio
no trivial se benefician de una representación orientada a objetos de los datos
(un modelo de dominio) que tiene todos los beneficios de las técnicas
de orientación a objetos como herencia y polimorfismo. Por varias razones (No
quiero repetir los argumentos que he expresado largamente en Hibernate in
Action), aplicaciones que usan modelos de dominio totalmente orientados a
objetos necesitan una solución automatizada al problema de adaptación OR. EJB3
incorpora una especificación ORM muy sofisticada que se basa fuertemente en la
experiencia en CMP 2.1, Hibernate y TopLink de Oracle.

Nuestra aplicación
de subastas tiene Users (Usuarios), Items (Items) y Bids (Ofertas). Vamos a
implementarlos como entity beans al estilo 3.0.
Comenzaremos con
Item:

@Entity
public class Item {
private Long id;
private User seller;
private Collection<Bid> bids = new ArrayList<Bid>();
private String description;
private String shortDescription;
private Date auctionEnd;
private int version;

public Item(User seller, String desc, String shortDesc, Date end) {
this.seller = seller;
this.description = desc;
this.shortDescription = shortDesc;
this.auctionEnd = end;
}

protected Item() {}

@Id(generate=AUTO)
public Long getId() {
return id;
}
protected void setId(Long id) {
this.id = id;
}

@Column(length=500)
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}

public Date getAuctionEnd() {
return auctionEnd;
}
protected void setAuctionEnd(Date end) {
this.auctionEnd = end;
}

@Column(length=100)
public String getShortDescription() {
return shortDescription;
}
public void setShortDescription(String shortDescription) {
this.shortDescription = shortDescription;
}

@JoinColumn(nullable=false, updatable=false)
public User getSeller() {
return seller;
}
protected void setSeller(User seller) {
this.seller = seller;
}

@OneToMany(cascade=ALL)
protected Collection<Bid> getBids() {
return bids;
}
protected void setBids(Collection<Bid> bids) {
this.bids = bids;
}

@Version
public int getVersion() {
return version;
}
protected void setVersion(int version) {
this.version = version;
}

public Bid bid(BigDecimal amount, User bidder) {
Bid newBid = new Bid(this, amount, bidder);
bids.add(newBid);
return bid;
}
}
Lo mas llamativo, inicialmente, son las anotaciones. No se
necesita ningún deployment descriptor! EJB 3.0 permite elegir entre el
uso de anotaciones y descriptores de despliegue en XML, pero lo esperado es que
las anotaciones serán el caso mas común.



Usuarios que han visto este tema también han visto...

- Creación de una Clase utilizando otra ya creada
- Crear un Proyecto Web J2EE con un módulo Web
- Singletons en Java, el patrón instancia única
- Extendiendo el Runtime de Java con nuevos idiomas
- Clases, Objetos y Constructores. ¿Cuál es la Diferencia? en Java


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 25-05-2012 a las 22:02:33