Actividad 1 - SAGC
Actividad 1 - SAGC
Actividad 1 - SAGC
FACULTAD DE INFORMATICA
Java Persistence API (JPA) es una especificación de Java que estandariza el mapeo
entre objetos Java y bases de datos relacionales. Proporciona una anotación y un
conjunto de API para gestionar la persistencia, las consultas y las transacciones
de datos independientemente de la base de datos subyacente.
• JPA:
-Abstracción de la base de datos.
-Utiliza anotaciones para el mapeo objeto-relacional.
-Gestión automática de la persistencia.
-Facilita el desarrollo a través de una API de alto nivel.
• JDBC:
-Acceso directo a la base de datos.
-Requiere escribir SQL explícito.
-Más control sobre las operaciones de la base de datos.
-Mayor complejidad en la gestión de la conexión y manejo de errores.
4. Diferentes cardinalidades soportadas por JPA
One-to-One: Una entidad está asociada con una y solo una instancia de
otra entidad.
One-to-Many: Una entidad está asociada con múltiples instancias de otra
entidad.
Many-to-One: Múltiples instancias de una entidad están asociadas con
una sola instancia de otra entidad.
Many-to-Many: Múltiples instancias de una entidad están asociadas con
múltiples instancias de otra entidad.
5. Relaciones Muchos a Uno: anotación @ManyToOne
Ejemplo:
@Entity
@ManyToOne
@JoinColumn(name = "customer_id")
La anotación @OneToOne se utiliza para definir una relación de uno a uno entre
dos entidades.
Ejemplo:
@Entity
@OneToOne
@JoinColumn(name = "address_id")
@Entity
@OneToMany(mappedBy = "customer")
@Entity
public class Student {
@ManyToMany
@JoinTable(
name = "student_course",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id"))
private Set<Course> courses;
// otros campos y métodos
}
9. Anotación @JoinColumn
Ejemplo:
@ManyToOne
@JoinColumn(name = "customer_id")
private Customer customer;
Ejemplo:
@Entity
@Table(name = "customers")
// campos y métodos
// campos y métodos
Ejemplo:
@Entity
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
}
14. Llaves compuestas con @IdClass
Ejemplo:
@IdClass(OrderId.class)
@Entity
@Id
@Id
Ejemplo:
@Entity