La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Hibernate Annotations

Presentaciones similares


Presentación del tema: "Hibernate Annotations"— Transcripción de la presentación:

1 Hibernate Annotations
Mapping Entitys with Java Persistent Annotations 2011 Aplicaciones Distribuidas

2 Annotations Anotaciones a nivel de clase (lista parcial) @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.

3 Annotations Anotaciones a nivel de propiedades (lista parcial) @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.

4 Annotations Anotaciones a nivel de propiedades (lista parcial)
@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.

5 Entidades persistentes
public class strategy = GenerationType.AUTO) private Integer (name=“nombre", nullable=false, length=50) private String nombre; private String private int estado; } 2011 Aplicaciones Distribuidas

6 Aplicaciones Distribuidas
Superclases @MappedSuperclass public class Persona { protected String nombre; protected String dni; public class Empleado extends Persona private String legajo; 2011 Aplicaciones Distribuidas

7 MR @MappedSuperclass Persiste a un objeto heredando las propiedades definidas en la superclase, en una única tabla.

8 Aplicaciones Distribuidas
Clases agregadas @Entity public class strategy = GenerationType.AUTO) private Integer id; private String private Domicilio domicilio; public class Domicilio { private String direccion; private String localidad; private int cp; 2011 Aplicaciones Distribuidas

9 MR @Embeddable Persiste al objeto contenedor de otros objetos embebidos.

10 Primary Key agregada @Entity @Table(name="telefonos" )
public class Telefono { @EmbeddedId private TelefonoId idtelefono; } @Embeddable public class TelefonoId implements Serializable { private String area; private String numero;

11 MR @EmbeddedId La primary key compuesta de la tabla se define en otra clase, con las propiedades que la forman.

12 Herencia Estrategia de tabla por clase
= InheritanceType.TABLE_PER_CLASS) public class Cuenta private int numero; protected double public class CajaAhorro extends Cuenta public class CuentaCorriente extends Cuenta { 2011 Aplicaciones Distribuidas

13 MR Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
Determina una tabla por cada subclase, heredando las propiedades de la superclase.

14 Herencia Estrategia de tabla única
= name="tipo", discriminatorType=DiscriminatorType.STRING) public class Cuenta private int numero; protected double public class CajaAhorro extends Cuenta public class CuentaCorriente extends Cuenta { 2011 Aplicaciones Distribuidas

15 MR @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
Se persiste en una única tabla todas las subclases, definiendo una columna para indicar el subtipo correspondiente.

16 Herencia Estrategia por reunión de tablas
= name=“cuentas") public class Cuenta private int numero; protected double public class CajaAhorro extends Cuenta name=“cuentascorrientes") public class CuentaCorriente extends Cuenta { 2011 Aplicaciones Distribuidas

17 MR @Inheritance(strategy = InheritanceType.JOINED)
Se persiste en tablas distintas. Las propiedades descriptivas en la tabla enlazada a la superclase. Las subclases, una tabla por cada subtipo, define una asociación de uno a uno con la tabla donde se persiste la superclase.

18 Asociaciones uno a uno (implícito)
public class Usuario private Integer id; private String = private Domicilio domicilio; public class Domicilio { private String direccion; 2011 Aplicaciones Distribuidas

19 Asociaciones uno a uno (explícito)
public class Usuario private Integer id; private String = private Domicilio domicilio; public class Domicilio { private String = "domicilio") private Usuario propietario 2011 Aplicaciones Distribuidas

20 MR @OneToOne Se persiste en tablas distintas. Una de las clases es la que determina la tabla relacionada. La otra clase determina la tabla relacionante. La restricción se realiza por la primary key.

21 Asociaciones uno a muchos unidireccional
public class Usuario private int id; private String nombre; private String private Set<Telefono> telefonos = new HashSet<Telefono>(); ) public class Telefono private Integer idtelefono; private int area; private int numero; 2011 Aplicaciones Distribuidas

22 Asociaciones uno a muchos bidireccional
public class Usuario private int id; private String private List<Telefono> telefonos = new ArrayList<Telefono>(); ) public class Telefono private Integer idtelefono; private private Usuario titular; 2011 Aplicaciones Distribuidas

23 MR @OneToMany - @ManyToOne
Se persiste en tablas distintas. Una de las clases es la que determina la tabla relacionada, definida La otra clase determina la tabla relacionante, explícitamente indicada La restricción relacional se realiza definiendo una foreign key.

24 Asociaciones muchos a muchos unidireccional
public class Usuario private Integer idusuario; private String nombre; private String (cascade=CascadeType.ALL) private Set<Cuenta> cuentas = new HashSet<Cuenta>(); ) public class Cuenta private Integer numero; private double saldo; 2011 Aplicaciones Distribuidas

25 Asociaciones muchos a muchos bidireccional
public class Usuario private int idusuario; private String nombre; private String (cascade=CascadeType.ALL) private Set<Cuenta> cuentas = new HashSet<Cuenta>(); ) public class Cuenta private Integer numero; private double private Set<Usuario> usuarios = new HashSet<Usuario>(); 2011 Aplicaciones Distribuidas

26 MR @ManyToMany Se persisten las clases en tablas distintas que son relacionadas por una tercera tabla relacionante.

27 Configuración La forma más sencilla es por medio de un archivo de propiedades: Hibernate.properties hibernate.dialect org.hibernate.dialect.SQLServerDialect hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver hibernate.connection.url jdbc:jtds:sqlserver:// /dbprueba hibernate.connection.username prueba hibernate.connection.password prueba hibernate.connection.pool_size 2 hibernate.connection.autocommit true hibernate.hbm2ddl.auto create-drop

28 Objetos de Hibernate Configuration: SessionFactory: Session:
es el objeto que contiene la información necesaria para conectarse a la base de datos. Es el encargado de leerse el archivo Hibernate.properties. SessionFactory: es una fábrica de Sessions. Un objeto Configuration es capaz de crear una SessionFactory ya que tiene toda la información necesaria. Session: es la principal interfaz entre la aplicación Java e Hibernate.. Permite añadir, modificar y borrar objetos en la base de datos. Transaction: se encarga de la transaccionalidad. Permite definir unidades de trabajo.

29 Configuración (pasos)
Instanciar una clase AnnotationConfiguration AnnotationConfiguration config = new AnnotationConfiguration(); Agregar las clases persistentes config.addAnnotatedClass(Usuario.class); Obtener un objeto SessionFactory. SessionFactory sessionFactory = config.buildSessionFactory(); Obtener el objeto Session Session session = sessionFactory.openSession(); Generar un objeto Transaction Transaction tran = session.beginTransaction(); Implementar la transacción y cerrar la sesión tran.commit(); session.close();


Descargar ppt "Hibernate Annotations"

Presentaciones similares


Anuncios Google