Diferencia entre revisiones de «Practicas con Hibernate»
(→Entidades) |
(→Entidades) |
||
Línea 56: | Línea 56: | ||
... | ... | ||
} | } | ||
+ | </code> | ||
+ | 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 esta columna. | ||
+ | <code java> | ||
+ | @OneToOne(optional=false) | ||
+ | @JoinColumn( | ||
+ | name="cuerpoId", unique=true, nullable=false, updatable=false) | ||
+ | private Cuerpo cuerpo; | ||
</code> | </code> | ||
Revisión del 11:50 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 esta columna.
@OneToOne(optional=false) @JoinColumn( name="cuerpoId", unique=true, nullable=false, updatable=false) private Cuerpo cuerpo;