Diferencia entre revisiones de «Practicas con Hibernate»

De Dos Ideas.
Saltar a: navegación, buscar
(Entidades)
(Entidades)
Línea 58: Línea 58:
 
</code>
 
</code>
 
Con la siguiente anotaci&oacute;n decimos que el corazon esta relacionado uno a uno con el cuerpo y la existencia de este &uacute;ltimo es obligatoria ('''optional=false''').
 
Con la siguiente anotaci&oacute;n decimos que el corazon esta relacionado uno a uno con el cuerpo y la existencia de este &uacute;ltimo es obligatoria ('''optional=false''').
Adem&acute;s en caso de que este relacionado por una FK, definimos que el Join, lo realice utilizando esta columna.
+
Adem&aacute;s, en caso de que este relacionado por una FK, definimos que el Join, lo realice utilizando la FK.
 
<code java>
 
<code java>
 
     @OneToOne(optional=false)
 
     @OneToOne(optional=false)

Revisión del 11:51 15 mar 2012

En este apartado mostraremos diferentes ejemplos de uso de hibernate, usando de prueba un proyecto con hibernate más spring

Cardinalidad entre entidades

Uno a Uno

Entidades

Ej.: Un cuerpo esta compuesto por un corazón

Cuerpo @Entity @Table(name = "Cuerpo", schema = "UnoAUno") public class Cuerpo {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "cuerpoId")
   private Long id;
   @Column(name = "cuerpoDescripcion")
   private String descripcion;
   
   @OneToOne(mappedBy = "cuerpo", cascade = CascadeType.ALL)
   private Corazon corazon;
  
   //Getter and Setter
   ...

}

Con la siguiente anotación decimos que el cuerpo posee una relación con la entidad corazón; y en la entidad corazón la relación esta dado por el atributo cuerpo. @OneToOne(mappedBy = "cuerpo", cascade = CascadeType.ALL) private Corazon corazon;

Corazón @Entity @Table(name = "Corazon", schema = "UnoAUno") public class Corazon {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "corazonId")
   private Long id;
   @OneToOne(optional=false)
   @JoinColumn(
           name="cuerpoId", unique=true, nullable=false, updatable=false)
   private Cuerpo cuerpo;
   @Column(name = "corazonDescripcion")
   private String descripcion;
   //Getter and Setter
   ...

} Con la siguiente anotación decimos que el corazon esta relacionado uno a uno con el cuerpo y la existencia de este último es obligatoria (optional=false). Además, en caso de que este relacionado por una FK, definimos que el Join, lo realice utilizando la FK.

   @OneToOne(optional=false)
   @JoinColumn(
           name="cuerpoId", unique=true, nullable=false, updatable=false)
   private Cuerpo cuerpo;

Ver también