- Crear una entidad que represente la información de la tabla partido.
- Generar un repositorio que permita trabajar con la entidad Partido.
- MySQL (o MariaDB)
- IntelliJ IDEA Community Edition
- Apache Maven 3.8.4 o superior
- JDK (o OpenJDK)
- Proyecto con modelo y repositorio (Proyecto del ejemplo 02)
En el Ejemplo 02 creaste tu primera entidad y repositorio. En ese ejercicio la clase era sencilla (no tiene agregación de ninguna otra).
Para este reto deberás crear la entidad y repositorio de un partido.
A continuación podrás ver el díagrama de la tabla partido.
Deberás hacer uso de las anotaciones @ManyToOne y @JoinColumn. A continuación te dejamos un ejemplo de como utilizar ManyToOne y JoinColumn
@ManyToOne
@JoinColumn(name = "equipos1_fk", referencedColumnName = "id")
private Equipo equipo1;
Solución
-
Crea la clase Partido en el paquete model y agrega los atributos y código generado igual que en el Ejemplo 02.
-
Agrega las anotaciones básicas para los atributos sencillos y para la clase.
-
Agrega la anotacion @ManyToOne y @JoinColumn como se muestra en la imagen:
-
Agrega el repositorio igual que en el Ejemplo 2:
package org.bedu.javase2.ejemplo.ejemplo1.model; import javax.persistence.*; import java.util.Objects; @Entity @Table(name="partidos") public class Partido { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "equipos1_fk", referencedColumnName = "id") private Equipo equipo1; @ManyToOne @JoinColumn(name = "equipos2_fk", referencedColumnName = "id") private Equipo equipo2; @Column(name="marcador_equipo_1") private Integer marcadorEquipo1; @Column(name="marcador_equipo_2") private Integer marcadorEquipo2; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Equipo getEquipo1() { return equipo1; } public void setEquipo1(Equipo equipo1) { this.equipo1 = equipo1; } public Equipo getEquipo2() { return equipo2; } public void setEquipo2(Equipo equipo2) { this.equipo2 = equipo2; } public Integer getMarcadorEquipo1() { return marcadorEquipo1; } public void setMarcadorEquipo1(Integer marcadorEquipo1) { this.marcadorEquipo1 = marcadorEquipo1; } public Integer getMarcadorEquipo2() { return marcadorEquipo2; } public void setMarcadorEquipo2(Integer marcadorEquipo2) { this.marcadorEquipo2 = marcadorEquipo2; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Partido)) return false; Partido partido = (Partido) o; return id.equals(partido.id) && equipo1.equals(partido.equipo1) && equipo2.equals(partido.equipo2) && marcadorEquipo1.equals(partido.marcadorEquipo1) && marcadorEquipo2.equals(partido.marcadorEquipo2); } @Override public int hashCode() { return Objects.hash(id, equipo1, equipo2, marcadorEquipo1, marcadorEquipo2); } }
Para validar que todo esté correcto, inicia la aplicación con maven.
Siguiente (Ejemplo 3)