SpringBoot Data JPA implementa una consulta de tabla de asociación de uno a muchos a uno
Entorno de desarrollo
Requisitos funcionales
A través de la relación de asociación, se buscan todas las tiendas de productos en la tienda. La tienda es de uno a muchos para productos, y el producto es de muchos a uno para las tiendas. El Exterior Key Store_ID existe en el lado múltiple. Use la declaración intra-conexión de la base de datos.
Estructura de tabla
tb_shop
tb_store
Clase de entidad, implementada por anotación
1. Store Class Store.java
paquete com.gaolei.entity; import javax.persistence.*; import java.util.hashset; import java.util.set;/*** creado por Gaolei el 2018/6/25. */ @Entity @table (name = "tb_store") Store de clases públicas {@id @GeneratedValue (estrategia = generationType.identity) ID de entero privado; // Shop Number private String Name; // Shop Nombre de cadena privada Dirección de cadena; tiendas = new Hashset <Shop> (); // omitir los métodos set () y get ();} Categoría de productos Shop.java
paquete com.gaolei.entity; import javax.persistence.*; import java.util.hashset; import java.util.set;/*** creado por Gaolei el 2018/6/25. */ @Entity @table (name = "tb_shop") Public Class Shop {@ID @GeneratedValue (estrategia = generaciónType.identity) ID de entero privado; // Nombre de cadena privada de identificación de producto; // Nombre del producto Precio intecar; // Precio de producto Private int // omit set () y get () métodos;} Storyao.java
La interfaz CrudRepository hereda de la interfaz del repositorio y ha agregado métodos simples como agregar, eliminar y verificar. Hay muchos métodos que se han encapsulado. No lo describiré aquí. Usaré Baidu para completar operaciones complejas aquí a través de declaraciones de HQL personalizadas.
paquete com.gaolei.dao; import com.gaolei.entity.store; import org.springframework.data.jpa.repository.query; import org.springframework.data.repository.crudrepository; import og.springframeWork.stereotype.Repository; import java.util.list; Gaolei el 2018/6/25. */@RepositoryPublic Interface Storyao extiende CrudRepository <Store, Integer> {// Este método consulta todos los productos en la tienda ID =? a través de una conexión en línea @Query ("Seleccione distinto s de Store S Inner Joins S.Shops donde s.id =? 1") Lista <Store> FindByShoPlist (ID de entero);} Standoreservice.java
Implementar el método inyectando storyao por @aUtowired
paquete com.gaolei.service; import com.gaolei.dao.storyao; import com.gaolei.entity.shop; import com.gaolei.entity.store; importar org.springframework.beanss.factory.annotation.aUtowired; import org.springframework.transaction.annotation.transactional; import java.util.list;/*** creado por Gaolei el 2018/6/25. */@Controlador@transaccionAlPublic StoreService {@aUtowired private storyao storyao; / *** PROBLEMAS PRODUCTOS**/ Public List <Store> FindByShoPlist (ID de Integer) {return storyao.findbyshoplist (id); }} Storeaction.java
Implementar una operación de datos específica
paquete com.gaolei.action; import com.Gaolei.entity.shop; import org. java.util.arrayList; import java.util.list;/*** Creado por Gaolei el 2018/6/26. */@Controlador@requestmapping ("/store") public class storeaction {@aUtowired private storeService Storeservice; / *** store_shop_menu muestra productos de almacenamiento**/ @RequestMapping ("showshop") public String showshop (httpServletResponse Respuesta, solicitud httpservletrequest, modelo modelo) {string id = request.getParameter ("store_id"); // consigue la tienda con id =? a través de la instrucción HQL y obtenga todos los productos en la lista de tiendas <Store> list = storeservice.findbyshoplist (integer.valueof (id)); // The Returned es una colección de tiendas, la clase de la tienda y la clase de tienda son de uno a muchos, y las tiendas en la tienda son List <Shop>. List <Shop> ShopList = New ArrayList <Stor> (); // Ciclismo Traversal para obtener cada tienda, agrégala a una nueva lista <sing>, que se utiliza para mostrar los datos en primer plano. para (tienda de la tienda: list) {system.out.println (store.getName ()); para (shop shop: store.getshops ()) {system.out.println (shop.getName ()); ShopList.Add (tienda); }} model.addattribute ("List", ShopList); return "admin/showshop"; }}Página de redirección
Tiendas vistas
Productos para almacenar
Se omite el código frontal, y lo principal es que la declaración en @Query ("*****************") puede usarse para lograr operaciones complejas con varias conexiones a la base de datos.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.