Sei sulla pagina 1di 23

Especializacin Base de Datos HIBERNATE

Msc. Germn Amzquita Becerra

2013

one-to-one

one-to-one
public class Persona implements java.io.Serializable { private Integer id; private String documento; private String tipoDocumento; private String nombres; private String apellidos; private Date fechaNacimiento; private Historial historials ; public Historial getHistorials() { return historials; }

public void setHistorials(Historial historials) { this.historials = historials; }


public Persona() { } }

one-to-one
<hibernate-mapping> <class catalog="bochica_datos" name="edu.uptcmedico.persistencia.entity.Persona" table="persona"> <id name="id" type="java.lang.Integer"> <column name="id"/> <generator class="identity"/> </id> ------------------------------ <one-to-one name="historials" cascade="save-update" class="edu.uptcmedico.persistencia.entity.Historial" > </one-to-one--> </class> </hibernate-mapping>

one-to-one
public class Historial implements java.io.Serializable { private int idPersona; private Date fechaCreacion; private Persona persona; public void setPersona(Persona persona) { this.persona = persona; } public Persona getPersona() { return persona; } public Historial() { } }

one-to-one
<hibernate-mapping> <class catalog="bochica_datos" name="edu.uptcmedico.persistencia.entity.Historial" table="historial"> <id column="id_persona" name="idPersona"> <generator class="foreign"> <param name="property">persona</param> </generator> </id> <property name="fechaCreacion" type="date"> <column length="10" name="fecha_creacion" not-null="true"/> </property> <one-to-one name="persona" constrained="true" /> </class>

one-to-one insertar
public void insertar(){ Session session= HibernateUtil.getSessionFactory().openSession(); Persona p = new Persona("1122345","C", "Vivianas","Amezquita", Calendar.getInstance().getTime()); Historial h = new Historial(Calendar.getInstance().getTime()); h.setPersona(p); session.beginTransaction(); //session.save(p); session.save(h); System.out.println("per: "+p.getId()+" "); session.beginTransaction().commit(); session.close(); }

one-to-one Consulta
public void consultaPersona(){ Session session= HibernateUtil.getSessionFactory().openSession(); String sql="from Persona"; List p = session.createQuery(sql).list(); Iterator itern = p.iterator(); while (itern.hasNext()) { Persona obj = (Persona)itern.next(); if (obj.getHistorials()!=null) System.out.println(obj.getNombres()+" "+ obj.getHistorials().getFechaCreacion()); else System.out.println(obj.getNombres()); } System.out.println(p); session.close(); }

Many-to-one

Many-to-one
<hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/bochica_datos?zeroDateTimeBehavior=convertToNull</property> <property name="hibernate.connection.username">root</property> <property name="show_sql">true</property> <property name="hibernate.show_sql">true</property> <mapping resource="edu/uptcmedico/persistencia/map/Enfermedad.hbm.xml"/> <mapping resource="edu/uptcmedico/persistencia/map/Historial.hbm.xml"/> <mapping resource="edu/uptcmedico/persistencia/map/Persona.hbm.xml"/> <mapping resource="edu/uptcmedico/persistencia/map/Vacuna.hbm.xml"/> <mapping resource="edu/uptcmedico/persistencia/map/Dosis.hbm.xml"/> </session-factory> </hibernate-configuration>

Many-to-one
public class Vacuna {

private Integer id; private String nombre; private String descripcion; public Vacuna() { } }

Many-to-one
public class Dosis { private Integer id; private int valorTiempo; private String unidadTiempo; private Vacuna vacuna; public Dosis() { } public Dosis(Vacuna vacuna) { setVacuna(vacuna); } }

Many-to-one
<hibernate-mapping> <class name="edu.uptcmedico.persistencia.entity.Vacuna" table="vacuna" catalog="bochica_datos"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="nombre" type="string"> <column name="nombre" length="45" not-null="true" unique="true" /> </property> <property name="descripcion" type="string"> <column name="descripcion" /> </property> </class> </hibernate-mapping>

Many-to-one
<hibernate-mapping> <class name="edu.uptcmedico.persistencia.entity.Dosis" table="dosis" catalog="bochica_datos"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="valorTiempo" type="int"> <column name="valor_tiempo" not-null="true" /> </property> <property name="unidadTiempo" type="character"> <column name="unidad_tiempo" /> </property> <many-to-one name="vacuna" column="id_vacuna"/> </class> </hibernate-mapping>

Many-to-one Insertar
Session session= HibernateUtil. getSessionFactory().openSession(); session.beginTransaction().commit(); Vacuna vac = new Vacuna( "DTP","Se administra para nios"); Dosis dosis = new Dosis(1,'M',vac); session.save(vac); session.save(dosis); session.beginTransaction().commit(); session.close();

Many-to-one consultas
Session session= HibernateUtil.getSessionFactory().openSession(); session.beginTransaction().commit(); List lista = session.createQuery("from Dosis").list(); Iterator it = lista.iterator(); while (it.hasNext()) { Dosis dosis = (Dosis)it.next(); System.out.println(dosis.getUnidadTiempo()+" "+dosis.getVacuna().getNombre()); } session.beginTransaction().commit(); session.close();

One-to_many

One-to_many
public class Historial implements java.io.Serializable { private int idPersona; private Date fechaCreacion; private Persona persona; private Set<DosisAplicada> listaDosisAplicada; public Set<DosisAplicada> getListaDosisAplicada() { return listaDosisAplicada; } public void setListaDosisAplicada(Set<DosisAplicada> listaDosisAplicada) { this.listaDosisAplicada = listaDosisAplicada; } }

One-to_many
<hibernate-mapping> <class catalog="bochica_datos" name="edu.uptcmedico.persistencia.entity.Historial" table="historial"> <id column="id_persona" name="idPersona"> <generator class="foreign"> <param name="property">persona</param> </generator> </id> <one-to-one name="persona" class="edu.uptcmedico.persistencia.entity.Persona" constrained="true" /> <set name="listaDosisAplicada"> <key column="id_historial"/> <one-to-many class="edu.uptcmedico.persistencia.entity.DosisAplicada"/> </set> </class> </hibernate-mapping>

One-to_many
public class DosisAplicada implements java.io.Serializable { private Integer id; private Date fechaAplicacion; private Historial historial; private Dosis dosis;

protected DosisAplicada() {
} }

One-to_many
<hibernate-mapping> <class name="edu.uptcmedico.persistencia.entity.DosisAplicada" table="dosis_aplicada" catalog="bochica_datos"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="fechaAplicacion" type="date"> <column name="fecha_aplicacion" length="10" not-null="true" /> </property> <many-to-one column="id_historial" name="historial"/> <many-to-one column="id_dosis" name="dosis"/> </class> </hibernate-mapping>

One-to_many
public void insertar(){ Session session= HibernateUtil.getSessionFactory().openSession(); session.beginTransaction().commit(); Dosis dosis1 = (Dosis) session.get(Dosis.class, 1); Dosis dosis2 = (Dosis) session.get(Dosis.class, 2); Historial historial = (Historial) session.get(Historial.class, 73); DosisAplicada dosisAplicada1 = new DosisAplicada(historial); dosisAplicada1.setFechaAplicacion(Calendar.getInstance().getTime()); DosisAplicada dosisAplicada2 = new DosisAplicada(historial); dosisAplicada2.setFechaAplicacion(Calendar.getInstance().getTime()); dosisAplicada1.setDosis(dosis1); dosisAplicada2.setDosis(dosis2); session.save(dosisAplicada1); session.save(dosisAplicada2); session.beginTransaction().commit(); session.close(); }

One-to_many
public void consulta(){ Session session= HibernateUtil.getSessionFactory().openSession(); session.beginTransaction().commit(); List lista = session.createQuery("from Historial").list(); for(int i =0;i<lista.size();i++){ Historial histo = (Historial)lista.get(i); System.out.print(histo.getFechaCreacion()+" "); Set lda = histo.getListaDosisAplicada(); for (Iterator it = lda.iterator(); it.hasNext();) { DosisAplicada da = (DosisAplicada)it.next(); System.out.print(" "+da.getId()+" "+da.getDosis().getVacuna().getNombre()); } System.out.println(""); } session.beginTransaction().commit(); session.close(); }

Potrebbero piacerti anche