jueves, 13 de diciembre de 2018

Anotaciones-hibernate

Anotaciones a nivel de clase:

@Entity
Establece la clase persistente.

@Table(name=“nombreTabla")
Configura características de la tabla donde se persiste la clase.

@MappedSuperclass
Determina la súper clase de una clase persistente.

@Embeddable
Determina la clase contenida en una clase persistente.

@Inheritance(strategy = estrategiaTipo)
Define el tipo de estrategia para persistir una jerarquía de herencia entre clases.

@DiscriminatorColumn
Define la columna (nombre y tipo de dato) utilizada como discriminante.

@DiscriminatorValue
Determina el valor para la columna utilizada como discriminador.

@PrimaryKeyJoinColumn(name=“nombreIdentificador")
Define el nombre de la clave relacionante.

Anotaciones a nivel de propiedades

@Id
Define la clave primaria.

@GeneratedValue
Establece el modo de asignación de los valores de la clave primaria.

@Column
Determina características de la columna de la tabla.

@Transient
Indica propiedad no persistente.

@Embedded
Indica que la propiedad es un objeto agregado.

@EmbeddedId
Indica que la clave primaria es por composición.

@PrimaryKeyJoinColumn
Define la clave primaria como relacionante.

@OneToOne
Asocia dos entidades en tablas distintas estableciendo vinculación única
entre ambas por medio de la clave primaria

@OneToMany
Asocia una entidad con una colección de otra entidad en tablas distintas
estableciendo vinculación referencial entre ambas

@ManyToOne
La asociación se establece en la entidad que es colección en la entidad
que la compone. Se genera vinculación referencial.

@ManyToMany
Son entre colecciones de entidades. Generan una tercera tabla
asociativa estableciendo una doble vinculación referencial.

Entidades persistentes

@Entity
@Table(name=“personas")
public class Persona {
          @Id
          @GeneratedValue( strategy = GenerationType.AUTO)
           private Integer id;

         @Column (name=“nombre", nullable=false, length=50)
         private String nombre;

         private String dni;
        @Transient private int estado;
}

Asociaciones uno a uno

@Entity
@Table(name="usuarios")
public class Usuario {

     @Id private Integer id;
     private String nombre;

     @OneToOne(cascade = CascadeType.ALL)
     private Domicilio domicilio;
}

        @Entity
        @Table(name="domicilios")
         public class Domicilio {

           @Id private Integer id;
           private String direccion;

           @OneToOne(mappedBy = "domicilio")
           private Usuario propietario
}

No hay comentarios:

Publicar un comentario

Curso de Java en los entornos profesionales 2025 - Tapa blanda

  Este curso integral de Java abarca temas fundamentales hasta avanzados, desde la historia de Java y la arquitectura de la máquina virtual...