No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende Inglés, Programación, AI, Ciberseguridad y más a precio especial.

Antes: $249

Currency
$209
Suscríbete

Termina en:

1 Días
19 Hrs
42 Min
11 Seg
Curso de Java Spring

Curso de Java Spring

Alejandro Ramírez

Alejandro Ramírez

¿Qué es JPA?

10/35
Recursos

Aportes 29

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mís apuntes:

¿Qué es JPA?

Jpa es una especificación de Java, standar, para un framework ORM. Quiere decir que son uan serie de reglas que Java define para que cualquier framework que quierea interactura con la BD de Java, tenga que seguir.

Los frameworks mas populares de Java para este fin son:

  • Hibernate
  • TopLink
  • EclipseLink
  • ObjectDB
<h3>Anotaciones JPA</h3>

JPA utiliza anotaciones para conectar clases a tablas de la BD y asi evitar hacerlo de manera nativa con SQL.

  • @Entity. Indica a una clase de java que esta representando una tabla de nuestra BD.
  • @Table. Recibe el nombre de la tabla a la cual esta mapeando la clase.
  • @column. Se le pone a los atributos de la clase, no es obligatoria, se indica sólo cuando el nombre de la columna es diferente al nombre del atributo de la tabla.
  • @id amd @EmbededID. Es el atributo como clave primaria de la tabla dentro de la clase. @id se utiliza cuando es clave primaria sencilla y @EmbededID cuando es una clave primaria compuesta.
  • @GeneratedValue. Permite generar automáticamente generar valores para las clases primarias en nuestras clases
  • @OneToMany and @MatyToOne. Representar relaciones

JPA Java Persistence API. Por si tenian la duda 😄

JPA es una especificación de JAVA hacia los frameworks ORM. Se basa en anotaciones, estre las que se encuentran:
@Entity para indicar que una clase java representa una tabla en la base de datos
@Table recible el nombre de la tabla
@Column se le pone a los atributos de la clase y se usa cuando los nombres entre la tabla y la entidad no coinciden
@Id y @EmbededId representan la clave primaria, id para sencilla y embeded para compuesta
@GeneratedValue genera valores automaticos para las llaves de las tablas
@OneToMany @ManyToOne permite representar relaciones

y como sería para utilizar un procedimiento almacenado ?

JPA ?
La API de persistencia JPA es el estándar de Java para mapear (asignar) objetos Java a una base de datos relacional. El mapeo o asignación de objetos Java a tablas de bases de datos y viceversa se denomina mapeo relacional de objetos en inglés también conocido por sus siglas como ORM.

Las anotaciones quedaron super claras!

![](

JPA (Java Persistence API) es una especificación estándar de Java que proporciona un conjunto de interfaces y reglas para la implementación de un Mapeo Objeto-Relacional (ORM). El ORM es una técnica que permite mapear objetos Java a estructuras de bases de datos relacionales, lo que facilita el almacenamiento y la recuperación de datos en bases de datos utilizando objetos Java en lugar de consultas SQL manuales. Esta abstracción entre la representación de datos en objetos Java y las tablas en una base de datos simplifica el desarrollo de aplicaciones y aumenta la portabilidad de código, ya que permite que las aplicaciones sean independientes del sistema de gestión de bases de datos subyacente.

Las implementaciones de JPA, como Hibernate, TopLink, EclipseLink y ObjectDB, se encargan de traducir las operaciones realizadas en objetos Java a consultas SQL necesarias para interactuar con la base de datos. Estas implementaciones también brindan funciones adicionales, como la administración de transacciones y el manejo de caché, que simplifican aún más el desarrollo de aplicaciones que acceden a bases de datos relacionales.

Anotaciones JPA son metadatos que se utilizan para configurar el mapeo entre las clases Java y las tablas de la base de datos. Estas anotaciones permiten especificar cómo se deben almacenar y recuperar los datos en la base de datos sin la necesidad de escribir consultas SQL. Algunas de las anotaciones JPA más comunes incluyen:

  • @Entity: Marca una clase Java como una entidad persistente, lo que significa que representa una tabla en la base de datos.

  • @Table: Permite especificar el nombre de la tabla en la base de datos a la que se mapea la entidad.

  • @Column: Se utiliza para configurar la correspondencia entre los campos de la entidad y las columnas de la tabla en caso de que los nombres sean diferentes.

  • @Id y @EmbeddedId: Se utilizan para definir las claves primarias de las entidades, donde @Id se usa para claves primarias simples y @EmbeddedId se utiliza para claves primarias compuestas.

  • @GeneratedValue: Permite la generación automática de valores para las claves primarias, lo que es útil cuando se desean valores autoincrementales.

  • @OneToMany y @ManyToOne: Estas anotaciones se utilizan para definir relaciones entre entidades, como relaciones uno a muchos o muchos a uno.

La explicación de @OneToMany y @ManyToOne, yo lo describiría un poco más; Sirve para representar relaciones o el tipo de relación que tienen los campos entre las diferentes tablas dentro de una BD.

Conclusiones =>
JPA es el API estándar que ofrece Java para la persistencia de objetos (ORM)
JPA es una especificacion por lo que existen múltiples implementaciones , entre ellas Hibernate
JPA utliza el API de JDBC por debajo
JPA fue inspirada en Hibernate

JPA son reglas para interactuar con la base de datos, las implemetaciones mas conocidas son hibernate, objectDB, TopLink y EclipseLink.
se usan anotaciones para conectar entidades a tablas de la base de datos usando codigo java evitando usar SQL.
@Entity representa una tabla en una clase java.
@Table recibe el nombre de una tabla la cual esta mapeando nuestra clase.
@Column representa un atributo de la tabla dentro de nuestra clase. se usa cuando el nombre de la columna de la tabla SQL es diferente al atributo de nuestra clase.
@Id representa la clave primaria dentro de nuestra clase en Java.
@EmbededId se usa cuando es una clave primaria compuesta.
@GeneratedValue representa el autoincrment dentro de nuestra clase.
@OneToMany representa relacion uno a muchos dentro de nuestra clase.
@ManyToOne representa relacion muchos uno dentro de nuestra clase.

Se puede generar entidades de tablas existentes?

Las clases en java son como las entidad en Base de datos( Modelo Entidad Relacion), los atributos de java son como las columnas( de igual forma se le llaman atributos ) en Base de datos y los objetos en java son como las tuplas(o registro) en Base de datos…

@Entity
Le indica a una clase de java que esta representando una tabla de nuestra base de datos

@Table
Recibe el nombre de la tabla a la cual esta mapeando la clase

@column
Se le pone a los atributos de la clase

@id amd @EmbededID
Es la clase primaria de la tabla dentro de la clase

@GeneratedValue
Nos permite generar automáticamente generar valores para las clases primarias en nuestras clases

@OneToMany and @MatyToOne
para representar relaciones

Para saber de otras anotaciones pueden revisar \[Anotaciones de mapeo]\(https://www.javaguides.net/2018/11/all-jpa-annotations-mapping-annotations.html) o La documentacion de Hibernate \[Mapping annotations] (https://docs.jboss.org/hibernate/orm/5.3/userguide/html\_single/Hibernate\_User\_Guide.html#annotations-jpa)

Framework populares

anotaciones de JPA

Se entiende.

Es decir que spring no es un framework, sino un conjunto de ellos? perdón la pregunta tonta

JPA: Especificación para un ORM la cual va a permitir la interacción con la base de datos.
.
Ejemplos de implementaciones:

  • Hibernate
  • TopLink
  • EclipseLink
  • ObjectDB
    .
    Anotaciones más populares.
  • Entity: Clase = tabla
  • Table: mapear el nombre de la tabla
  • Column: Mapear el nombre de la columna
  • Id: clave primaria sencilla
  • EmbededId: clave primaria compuesta.
  • GeneratedValue: Generar las llaves primarias
  • OneToMany. ManyToOne
/*JPA
Es una especificación de Java para un framework ORM [Object Relational Mapping]:
- Es una serie de reglas que Java define para que cualquier framework que quiera interactuar con la base de datos desde Java tenga que seguir.
- Para realizarlo, JPA realiza anotaciones para conectar clases con tablas de nuestra base de datos:
	- @Entity: Le dice a una clase que está representan una tabla de nuestra base de datos
	- @Table: Recibe el nombre de la tabla a la cual está mapeando nuestra clase
	- @Column: Se pone a los atributos dentro de la clase. No es obligatoria, solo se pone cuando el nombre de la columna sea diferente al nombre del atributo de nuestra tabla en base de datos
	- @Id&EmbededId: Representan la clave primaria de nuestra tabla en la clase. @Id se utiliza cuando es una clave primaria sencilla y @EmbededId se utiliza cuando es una llave primaria compuesta
	- @GeneratedValue: Genera automáticamente valores para las claves primarias en nuestra clase
	- @OneToMany & @ManyToOne: Representa relaciones en la clases.
*/

Relaciones uno a muchos y muchos a uno

Genial, una gran explicación

<h3>¿Qué es JPA?</h3>

Especificación de JAVA para un framework ORM, es una serie de reglas para que cualquier framework que quiera interactuar con la base de datos tenga que seguir.

Los mas populares son

  • Hibernate
  • TopLink
  • EclipseLink
  • ObjectDB

JPA utiliza anotaciones para conectar clases a tablas de la base de datos

Anotaciones mas populares:

  • @Entity → La mas importante, la que indica a una clase de Java que esta representando a una tabla.
  • @Table → Recibe el nombre de la tabla.
  • @Column → Anotación que se pone a los atributos de la clase, solo poner cuando el nombre de la columna sea diferente al nombre del atributo de la tabla.
  • @Id & @EmbededId → Representan a la clave primaria, id clave sencilla, embededId para clave compleja.
  • @GeneratedValue → Anotación que permite generar valores para las claves primarias de las tablas en la clase.
  • @OneToMany & @ManyToOne → Representar relaciones en las clases.

Perfecto, vamos bien.

me parece que srping es como en ASP net de java … será o me estoy saliendo del tema…