Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

JPA - Java Persistence API

No description

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JPA - Java Persistence API

Introducción JPA hace referencia al API definido en el paquete de javax.persistence , la cual ayuda a persistir entidades usando metadatos que pueden ser especificados con el uso de anotaciones. Arquitectura Herencia JPA soporta las siguientes estrategias de persistencia de herencias:
Una tabla con las clases hijos.
Una tabla por clase. Referencias JPA Java Persistence API JPA mapea automáticamente nuestras clases en la base de datos de manera transparente, y utilizando un estándar, lo cual entre otras cosas nos permite poder migrar de motor cuando queramos, y poder compartir codigo o trabajar en equipo sin ningun problema Entity Class Para mapear un bean (una clase java) con una tabla de la base de datos, tendríamos que escribir lo que se llama un Entity. Una tabla por todas las clases heredadas @OneToOne Implementación JPA Cada entidad se relaciona con una sola instancia de otra entidad. Una Entity hace referencia a una colección lógica de datos que pueden ser almacenados o recuperados en conjunto. Son las clases que representan una tabla en una base relacional que puede ser mapeada, manejada (modificada) y persistida. @Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name=“AccType”,discriminatorType=DiscriminatorType.STRING)

public class Account {
@Id
private int accno;
} Requerimientos para una EntityClass La clase debe importar el paquete javax.persistence.*;
Debe tener un constructor sin argumentos y debe ser publica, default o protected.
Los atributos de la clase deben ser declarados privados y solo pueden ser accedidos por los get y sets de la clase. @OneToMany Una entidad, puede estar relacionada con varias instancias de otras entidades @Entity
@DiscriminatorValue(“Savings”)public class savingAccount extends Account{
private double minBalance;
} Una Tabla por clase cada clase en una tabla , pero los hijos tienen como atributo el Id del padre @InheritanceType.JOINED
@DiscriminatorColumn(name="AccType",discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("Savings") @ManyToMany En este caso varias intancias de una entidad pueden relacionarse con múltiples instancias de otras entidades Persistiendo una Entidad
usando JPA El JPA puede manejar
el Patrón DAO y a su ves
el ActiveRecord Se debe :
Configurar la unidad de persistencia en el archivo de persistence.xml.
Crear una instancia de EntityManagerFactory
Obtener la instancia del EntityManager
Persistir la entidad , comenzando la EntityTransaction , luego invocado el metodo persist() y haciendo commit a la transaccion CascadeType Forms CascadeType.PERSIST - Cuando persistamos la entidad todas las entidades que contenga esta variable serán persistidas también.
CascadeType.REMOVE - Cuando borremos la entidad todas las entidades que contenga esta variable se borrarán del mismo modo.
CascadeType.REFRESH - Cuando actualicemos la entidad todas las entidades que contenga esta variable se actualizarán.
CascadeType.MERGE - Cuando hagamos un "merge" de la entidad todas las entidades a contenga esta variable realizarán la misma operación. Annotations @Entity: para especificar que la clase es la entidad de una tabla.
@Table:Para especificar el nombre dee la tabla en caso de que sea uno especifico o diferente al de la clase.
@Column:Usada para especificar el nombre de una columna , si es diferente al del atributo en la clase , ademas de que se puede especificar el tipo de atributo(Int, varchar(string)…) @Temporal:Para los datos que son tipo Date o Time. En java son de la libreria java.util pero para usarlo en base de datos debo especificar con esta anotacion para que sea soportado el tipo Date, o Calendar o Time.
@Transient: Para especificar atributos que son parte de la entidad pero no necesito que sean persistidos en la base de datos, solo a nivel de java. @Id son especificadas por medio de esta notacion en la clase entidad.
@IdClass son para especificar que esa clase tiene claves primarias compuestas
@EmbeddedId-@Embeddable son para especificar mi llave compuesta y la clase que contiene mis llaves Introduccion @Anotaciones Son sentencias que sirven para indicarle al compilador qué es y cómo va a funcionar la siguiente instrucción.
Full transcript