Данные Springboot JPA реализует таблицу таблицы ассоциации от одного ко многим.
Среда развития
Функциональные требования
Благодаря отношениям ассоциации все магазины продуктов в магазине исходят. Магазин один на один-один для продуктов, а продукт-много для одного для магазинов. Foreign Key Store_ID существует на нескольких сторонах. Используйте оператор внутрипонковка базы данных.
Структура таблицы
tb_shop
TB_STORE
Класс сущности, реализованный аннотацией
1. Магазин класса Store.java
Пакет com.gaolei.entity; импорт javax.persistence.*; import java.util.hashset; импорт java.util.set;/*** Создан Gaolei 2018/6/25. */ @Entity @table (name = "tb_store") Общедоступный класс Store {@id @generatedValue (стратегия = GenerationType.identity) Частный идентификатор целого числа; // Номер магазина частной строки; // Название магазина Private String Addre; // Магазин private int tel; // shop contact info information @onetomony (cascade = cascadetype.all. Shops = новый хэшсет <Shop> (); // Опустите методы set () и get ();} Категория продукта Shop.java
Пакет com.gaolei.entity; импорт javax.persistence.*; import java.util.hashset; импорт java.util.set;/*** Создан Gaolei 2018/6/25. */ @Entity @table (name = "tb_shop") Общедоступный класс Shop {@id @generatedValue (стратегия = GenerationType.identity) частный целочисленный идентификатор; // идентификатор продукта частная строка именем; // название продукта частная цена; // цена продукта private int num; // Количество продукта частная строка Информация; // Информация о продукте @manytoone @joincolumn (name = "store_id") // Foreign Key Store Store; // опустить set () и get () методы;} Storedao.java
Интерфейс CrudRepository наследует от интерфейса репозитория и добавляет простые методы, такие как добавление, удаление и проверка. Есть много методов, которые были инкапсулированы. Я не буду описывать это здесь. Я буду использовать Baidu для завершения сложных операций здесь с помощью пользовательских операторов HQL.
Пакет com.gaolei.dao; import com.gaolei.entity.store; import org.springframework.data.jpa.repository.query; импорт org.springframework.data.repository.crudrepository; импорт org.spramework.repotypity.RepoTipory. 2018/6/25. */@Repositorypublic interface storedao extends crudrepository <store, integer> {// Этот метод запросит все продукты в магазине идентификатор =? через встроенное подключение @Query («Выберите отдельные s от внутреннего соединения S.shops S.Shops, где s.id =? 1») List <Store> findbyShoplist (IDEGER ID);} Storeservice.java
Реализовать метод путем инъекции Storedao от @autowired
пакет com.gaolei.service; import com.gaolei.dao.storedao; import com.gaolei.entity.shop; import com.gaolei.entity.store; import org.springframework.beans.factory.annotation.autowired; импорт org.spramework.stereotype.contory. org.springframework.transaction.annotation.transactional; import java.util.list;/*** Создан Gaolei 2018/6/25. */@Controller@TransactionAlpublic Class Storeservice {@autowired Private Storedao Storedao; / *** Отображение продуктов хранилища**/ public list <store> findbyshoplist (Integer id) {return storedao.findbyshoplist (id); }} StoreAction.java
Реализуйте конкретную работу данных
пакет com.gaolei.action; import com.gaolei.entity.shop; import com.gaolei.entity.store; import com.gaolei.service.shopservice; импорт com.gaolei.service.shoreservice; импорт org.springframework.beans.factory.annotation.autowired; org.springframework.ui.model; Import org.springframework.web.bind.annotation.requestmapping; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservestonse; Создано Галии 2018/6/26. */@Controller@requestMapping ("/store") открытый класс StoreAction {@autowired Private Storeservice Storeservice; / *** store_shop_menu Отображает продукты Store**/ @requestmapping ("showshop") public String showshop (httpservletresponse, httpservletrequest, модель модели) {String id = request.getParameter ("store_id"); // Получить магазин с id =? Через оператор HQL и получить все продукты в списке магазинов <Store> list = storeservice.findbyShoplist (integer.valueof (id)); // возвращенная коллекция магазинов, класс магазинов и класс магазинов один на один-один, а магазины под магазином-список <Shop>. Список <Shop> shopList = new ArrayList <Shop> (); // езда на велосипеде, чтобы получить каждый магазин, добавьте его в новый список <Shop>, который используется для отображения данных на переднем плане. для (Store Store: List) {System.out.println (store.getName ()); для (Shop Shop: store.getShops ()) {System.out.println (shop.getName ()); ShopList.Add (Shop); }} model.addattribute ("list", shoplist); вернуть "Admin/Showshop"; }}Страница перенаправления
Магазины просмотрены
Хранить продукты
Передний код опущен, и главным является то, что утверждение в @Query ("******************) может использоваться для достижения сложных операций с различными соединениями с базой данных.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.