Springboot Data JPA implementiert Eins-zu-Viele, viele zu eins-zu-Eins-Association-Tabellenabfrage
Entwicklungsumfeld
Funktionale Anforderungen
Durch die Assoziationsbeziehung werden alle Produktgeschäfte im Geschäft durchsucht. Das Geschäft ist eins zu viele für Produkte, und das Produkt ist für Geschäfte viele zu eins. Das fremde Schlüsselstore_ID existiert auf der Mehrseite. Verwenden Sie die Intra-Connect-Anweisung der Datenbank.
Tabellenstruktur
tb_shop
tb_store
Entitätsklasse, implementiert durch Annotation
1. Store Class Store.java
Paket com.gaolei.entity; import Javax.Persistence. */ @Entity @table (name = "tb_store") öffentlicher Klasse Store {@ID @generatedValue (Strategie = GenerationType.Identity) Private Integer id; // Shop -Nummer privat String Name; // Shop -Name private String -Adresse; // Shop -Adresse private Int Tel; // Shop -Saiten -Info; // Shop Information @onetomany (CASCADE = CASCADE = CASCADE = CASCADE = CASCADE = CASCADE = CASCADE = CASCADE = ") (CASCADE = CASCADE = CASCADE = CASCADE ="). = neuer Hashset <Sops> (); // Die set () weglassen und Get () Methoden;} Produktkategorie Shop.java
Paket com.gaolei.entity; import Javax.Persistence. */ @Entity @table (name = "tb_shop") public class shop {@id @generatedValue (Strategy = GenerationType.Identity) Private Integer ID; // Produkt -ID Private Zeichenfolge Name; // Produktname privater Int -Preis; // Produktpreis private int num; // Produktmenge Private String Info; // Produktinformationen @Manytoone @JoIncolumn (name = "store_id") // Fremd Key Private Store; // set () und get () Methoden auslassen;} Storedao.java
Die Crudrepository -Schnittstelle erbt von der Repository -Schnittstelle und hat einfache Methoden wie Hinzufügen, Löschen und Überprüfungen hinzugefügt. Es gibt viele Methoden, die verkapselt wurden. Ich werde es hier nicht skizzieren. Ich werde Baidu verwenden, um den komplexen Vorgängen hier über benutzerdefinierte HQL -Anweisungen abzuschließen.
Paket com.gaolei.dao; import com.gaolei.entity.store; import org.springframework.data.jpa.repository.Query; Gaolei über 2018/6/25. */@Repositorypublic interface storedao erweitert crudrepository <store, Integer> {// Diese Methode wechselt alle Produkte in Store ID =? über eine Inline -Verbindung @Query ("Auswahl von STORE S INNER JEGES SHOPS WHERE S.ID =? 1") LIST <SPORE> FindByShopList (Integer ID);};}; StoreService.java
Implementieren Sie die Methode, indem Sie Storedao von @autowired injizieren
Paket com.gaolei.service; import com.gaolei.dao.storedao; import com.gaolei.entity.shop; import com.gaolei.entity.store; org.springframework.transaction.annotation.transactional; import java.util.list;/*** Erstellt von Gaolei am 2018/6/25. */@Controller@TransactionalPublic Class StoreService {@autowired Private Storedao Storedao; / *** STORE -Produkte anzeigen**/ publiclist <store> findByShoplist (Integer id) {return Storedao.findbyShoplist (ID); }} Storaction.java
Implementieren spezifische Datenoperationen
Paket com.gaolei.action; import com.gaolei.entity.shop; import com.gaolei.entity.store; import com.gaolei.service.shopservice; com.gaolei.service.storeService; org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation Java.util.ArrayList; Import Java.util.List;/*** Erstellt von Gaolei am 2018/6/26. */@Controller@RequestMapping ("/store") öffentliche Klasse Storaction {@autowired Private StoreService StoreService; / *** store_shop_menu zeigt Store Produkte an**/ @RequestMapping ("showShop") public String showShop (httpServletResponse -Antwort, httpServletRequest -Anforderung, Modellmodell) {String -ID = Anfrage.GetParameter ("store_id"); // den Laden mit id = bekommen? über die HQL -Anweisung und alle Produkte unter der Storeliste <Steen> list = storeService.findByShopList (Integer.ValueOf (ID)) erhalten; // Die zurückgegebene Kollektion ist eine Geschäftskollektion, die Ladenklasse und die Ladenklasse sind eins zu vielen und die Geschäfte unter dem Laden sind List <Sop>. LISTE <Sops> ShopList = New ArrayList <Sops> (); // Radfahren durchqueren, um jeden Shop zu erhalten, fügen Sie ihn zu einer neuen Liste <Sops> hinzu, mit der die Daten im Vordergrund angezeigt werden. für (Store Store: Liste) {System.out.println (store.getName ()); für (Shop Shop: store.getShops ()) {System.out.println (Shop.getName ()); Shoplist.Add (Shop); }} model.addattribute ("list", Shoplist); zurück "admin/showshop"; }}Umleitungsseite
Geschäfte angezeigt
Produkte speichern
The front-end code is omitted, and the main thing is that the statement in @Query("******************") can be used to achieve complex operations with various connections to the database.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.