Spring Boot está construido en la parte superior del resorte y contiene todas las características del resorte. Spring también proporciona JPA e hibernate para aumentar la eficiencia de manipulación de datos entre la aplicación Spring y la base de datos. En términos muy simples, podemos decir que JPA (api de persistencia de Java) es como una interfaz y la hibernación es la implementación de los métodos de la interfaz . La forma en que se desactivará la inserción ya está definida con la ayuda de la hibernación. En este artículo, discutiremos el mapeo de uno a muchos en Hibernate. Entendamos el mapeo de uno a muchos con la ayuda de un ejemplo de la vida real. El fabricante de bicicletas puede fabricar varios modelos de bicicletas, pero el mismo modelo de bicicleta no puede ser fabricado por varios fabricantes.
Sintaxis :
@oneToMany(asignadopor=”nombredelavariableasignada”)
Esta variable mapeada de las otras tablas es responsable del mapeo entre dos tablas.
Spring Initializer es una herramienta basada en web con la que podemos generar fácilmente la estructura del proyecto Spring Boot. También proporciona varias características diferentes para los proyectos expresados en un modelo de metadatos. Este modelo nos permite configurar la lista de dependencias que admite JVM. Aquí, crearemos la estructura de una aplicación utilizando un inicializador de resorte.
Ejemplo
Paso 1: Ve a este enlace . Complete los detalles según los requisitos. Para esta aplicación:
Project: Maven Language: Java Spring Boot: 2.5.7 Packaging: JAR Java: 11 Dependencies: Spring Web,Spring Data JPA, MySql Driver
Haga clic en Generar, que descargará el proyecto inicial.
Paso 2 : extraiga el archivo zip. Ahora abra un IDE adecuado y luego vaya a Archivo > Nuevo > Proyecto de fuentes existentes > Spring-boot-app y seleccione pom.xml. Haga clic en importar cambios en el aviso y espere a que el proyecto se sincronice como se muestra a continuación:
Estructura del proyecto:
Mapeo de uno a muchos
Paso 3: Agregar las propiedades necesarias en el archivo application.properties. (mapeo es el nombre de la base de datos)
spring.datasource.username=root spring.datasource.password=Aayush spring.datasource.url=jdbc:mysql://localhost:3306/mapping spring.jpa.hibernate.ddl-auto=update
Paso 4: Vaya a src->main->java->com->example->Mapping y cree dos archivos en la carpeta de modelos, es decir, Manufactures.java y Model.java
Estructura del proyecto:
Manufacturas.java
Java
package com.example.Mapping.Models; import javax.persistence.*; import java.util.List; @Entity public class Manufactures { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; // One manufactures can produces // multiple models of the bike private String manufactures_name; @OneToMany(mappedBy ="ob") private List<Model>models; public Manufactures(int id, String manufactures_name) { this.id = id; this.manufactures_name = manufactures_name; } Manufactures(){ } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getManufactures_name() { return manufactures_name; } public void setManufactures_name(String manufactures_name) { this.manufactures_name = manufactures_name; } }
Modelos (asignados por tabla)
Java
package com.example.Mapping.Models; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Model { @Id private int model_id; private String name; @ManyToOne @JoinColumn(name = "manufacture_id") private Manufactures ob; public Model(int model_id, String name, Manufactures ob) { this.model_id = model_id; this.name = name; this.ob = ob; } Model(){ } public int getModel_id() { return model_id; } public void setModel_id(int model_id) { this.model_id = model_id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Manufactures getOb() { return ob; } public void setOb(Manufactures ob) { this.ob = ob; } }
Paso 5: Agregar el repositorio JPA de ambas clases en la estructura del proyecto:
ManufacturaRepo
Java
package com.example.Mapping.Reposteries; import com.example.Mapping.Models.Manufactures; import org.springframework.data.jpa.repository.JpaRepository; public interface ManufacturesRepo extends JpaRepository<Manufactures,Integer> { }
ModelRepo:
Java
package com.example.Mapping.Reposteries; import com.example.Mapping.Models.Model; import org.springframework.data.jpa.repository.JpaRepository; public interface ModelRepo extends JpaRepository<Model, Integer> { }
Aplicación de mapeo:
Java
package com.example.Mapping; import com.example.Mapping.Models.Manufactures; import com.example.Mapping.Models.Model; import com.example.Mapping.Reposteries.ManufacturesRepo; import com.example.Mapping.Reposteries.ModelRepo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MappingApplication implements CommandLineRunner { @Autowired ManufacturesRepo manufacturesRepo; @Autowired ModelRepo modelRepo; public static void main(String[] args) { SpringApplication.run(MappingApplication.class, args); } @Override public void run(String... args) throws Exception { Manufactures data=new Manufactures(1,"Honda"); // Inserting the record in the Manufactures table. manufacturesRepo.save(data); // Now try to mapped above record with multiple models Model model1=new Model(1,"AYZ",data); Model model2=new Model(2,"ZET",data); modelRepo.save(model1); modelRepo.save(model2); } }
Ejecute la aplicación principal:
mesa de fabricacion
mesa modelo
Publicación traducida automáticamente
Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA