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