Programacion EJB-Hibernate
Programacion EJB-Hibernate
Programación EJB
Framework Hibernate
Instructor: Bernal Fernández B.
(+506) 8834-9851
Copyright CCI CONSULTORES 2012 Costa Rica 1
Los modelos Relacional y OO
o Una aplicación informática consta de dos componentes
principales que colaboran para llevar a cabo la funcionalidad
que el usuario desee. El primero de estos componentes es la
base de datos, que guarda la información necesaria para
operar la aplicación, en forma de datos en disco.
o El segundo de estos componentes es el
programa propiamente dicho, que recupera esos
datos de la base de datos, realiza los cálculos
necesarios y presenta los resultados deseados al
usuario.
o Para que estos dos componentes puedan
funcionar juntos deben poder comunicarse
intercambiando datos. En otras palabras, deben
ser compatibles.
Motor
Persistencia
PersistenceException EntityNotFoundException
TransactionRequiredException NoResultException
OptimisticLockException NonUniqueResultException
PessimisticLockException QueryTimeoutException
LockTimeoutException
RollbackException
EntityExistsException
o Sus atributos pueden ser tipos primitivos (p.j. int) wrapers de tipos
primitivos (p.j. Integer), enumeraciones o otras entidades.
Anotación Anotación
@PostLoad @PrePersist
@PostPersist @PreRemove
@PostRemove @PreUpdate
@PostUpdate
@id
@JoinTable
@ManyToOne
@OneToOne
@Enumerated
@ManyToMany @Basic
@Table
Anotación Descripción
@Entity Agrega la clase como
una entidad
administrada por el
motor ORM
Anotación Descripción
@Table Define la tabla exacta que
representa la entidad
Anotación Descripción
@Id Define el atributo id o primary key de una
entidad
@IdClass Define los atributos de una llave
compuesta para una clase, solo
implementa los campos y en la clase que
la usa como llave primaria se referencia
como
@IdClass(com.cci.empleadoPK.class)
@EmbeddedId Define una llave compuesta tal como lo
hace @IdClass, solo que lo atributos
usados como llave primaria no se marcan
con @Id.
Anotación Descripción
@Basic Se utiliza para configurar el tipo
inicialización de las entidades
asociadas.
@Enumerated Se utiliza para marcar los atributos los
cuales se usan con enumeraciones
(Activo, Inactivo; 0,1,2)
@Temporal Se utiliza para manejar la precisión en
las fechas.
Anotación Descripción
Anotación Descripción
@OneToOne Representa una relación uno a uno
Anotación Descripción
@Embeddable Define una clase que hace parte de una
entidad, comparte su id pero no su
almacenamiento
Anotación Descripción
@Inheritance Establece la configuración de herencia,
se usa en conjunto con
@DiscriminatorColumn,
@DiscriminatorValue
@DiscriminatorColumn Define como se identifican distintas
clases heredadas almacenadas en una
tabla.
@DiscriminatorValue Define el valor que tiene esta clase en
la columna @DiscriminatorColumn
Hijo @AttributeOverride(name=“id”,
column=@Column(name=“identificacion”);
Anotación Descripción
@Version Establece un campo para el
control de versiones de una
entidad, así entre operaciones
update este valor aumenta con
el tiempo, esto así para
identificar posibles problemas de
modificación concurrente.
o Lista de Anotaciones:
http://www.oracle.com/technetwork/middleware/ias/
toplink-jpa-annotations-096251.html
Datasource
n EntityManager
o Los cuales se encargan de realizar la manipulación y búsqueda
de entidades desde:
o EntityManager.refresh(Entidad)
Contrario al flush(), este método vuelve a cargar los datos
originales de la base de datos a la entidad.
Muchos a Uno
…
… Muchos a Muchos …
Una ciudad solo puede estar en un país, pero un país puede tener varias ciudades.
Joined
• Los atributos compartidos se
almacenan en una tabla, los
atributos particulares se
almacenan en otra tabla.
o Las validaciones agregadas a una clase hijo son sumadas a las
de su padre (no sustituyen las heredada)