jueves, 16 de junio de 2011

Usando Clases Embebidas

Para este ejemplo estoy utilizando Netbeans 6.9, Ubuntu 10.04, Glassfish V3 y DerbyDB

Primeramente creamos un Enterprise Project al que llamaremos ClasesEmbebidas.



Luego vamos a crear un Session Bean del tipo Stateless, con interface remota llamado Utilitario en el paquete com.ejemplo.session.



Despues vamos a crear una unidad de persistencia, llamada puClasesEmbebidas, con Toplink, datasource jdbc/sample y con la estrategia de generacion de tablas Drop and Create.

Después de esto creamos el paquete com.ejemplo.entity


Dentro de este paquete, creamos una clase llamada Direccion, con el siguiente código:

package com.ejemplo.entity;

import java.io.Serializable;
import javax.persistence.Embeddable;


@Embeddable
public class Direccion implements Serializable{
private String ciudad;
private String calle;
private String numero;

public Direccion(){

}

public Direccion(String ciudad, String calle, String numero) {
this.ciudad = ciudad;
this.calle = calle;
this.numero = numero;
}



public String getCalle() {
return calle;
}

public void setCalle(String calle) {
this.calle = calle;
}

public String getCiudad() {
return ciudad;
}

public void setCiudad(String ciudad) {
this.ciudad = ciudad;
}

public String getNumero() {
return numero;
}

public void setNumero(String numero) {
this.numero = numero;
}
}


También dentro de este paquete, creamos una clase llamada Persona, con el siguiente código:
package com.ejemplo.entity;

import java.io.Serializable;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;


@Entity
public class Persona implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nombre;
private String telefono;
@Embedded
private Direccion direccion;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public Direccion getDireccion() {
return direccion;
}

public void setDireccion(Direccion direccion) {
this.direccion = direccion;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getTelefono() {
return telefono;
}

public void setTelefono(String telefono) {
this.telefono = telefono;
}
}

Luego cambiamos Utilitario.java al siguiente código:
package com.ejemplo.session;

import com.ejemplo.entity.Direccion;
import com.ejemplo.entity.Persona;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


@Stateless
public class Utilitario implements UtilitarioRemote {

@PersistenceContext
EntityManager em;

public void crearPersona() {
Persona persona=new Persona();
persona.setId(1L);
persona.setNombre("Santiago");
persona.setDireccion(new Direccion("Quito","Amazonas y NNUU","1023"));
persona.setTelefono("593212345678");
em.persist(persona);
}
}


Cambiamos Main.java y colocamos el siguiente código:
package clasesembebidas;

import com.ejemplo.session.UtilitarioRemote;
import javax.ejb.EJB;


public class Main {

@EJB private static UtilitarioRemote utilitario;

public static void main(String[] args) {
utilitario.crearPersona();
}

}

y al ver los servicios, veremos que se creó una tabla llamada direccion, con los atributos de la clase Direccion.

No hay comentarios:

Publicar un comentario