Data Springboot JPA mengimplementasikan permintaan tabel satu-ke-banyak, banyak korelasi
Lingkungan pengembangan
Persyaratan fungsional
Melalui hubungan asosiasi, semua toko produk di toko dicari. Toko ini adalah satu-ke-banyak untuk produk, dan produknya banyak untuk toko. Store_id kunci asing ada di multi-sisi. Gunakan pernyataan intra-connect dari database.
Struktur tabel
tb_shop
tb_store
Kelas entitas, diimplementasikan dengan anotasi
1. Store Class Store.java
Paket com.Gaolei.entity; import javax.persistence.*; impor java.util.hashset; import java.util.set;/*** dibuat oleh Gaolei pada 2018/6/25. */ @Entity @table (name = "tb_store") store kelas publik {@id @generatedValue (strategi = generasi. hashset baru <topp> (); // hilangkan metode set () dan get ();} Kategori Produk Shop.java
Paket com.Gaolei.entity; import javax.persistence.*; impor java.util.hashset; import java.util.set;/*** dibuat oleh Gaolei pada 2018/6/25. */ @Entitas @table (name = "tb_shop") Toko kelas publik {@id @generatedValue (strategi = generasi. // ID Produk Nama String Pribadi; // Nama Produk Private Int Harga; // Harga Produk Private Int Num; // Kuantitas Produk Info String Pribadi; // Informasi Produk @ManytoOne @joincolumn (name = "Store_id") // Kunci Asing Toko Toko Pribadi; // hilangkan set () dan get () metode;} Storedao.java
Antarmuka crudrepository mewarisi dari antarmuka repositori dan telah menambahkan metode sederhana seperti menambahkan, menghapus, dan memeriksa. Ada banyak metode yang telah dienkapsulasi. Saya tidak akan menguraikannya di sini. Saya akan menggunakan Baidu untuk menyelesaikan operasi kompleks di sini melalui pernyataan HQL khusus.
Paket com.Gaolei.dao; impor com.gaei.entity.store; impor org.springframework.data.jpa.repository.query; impor org.springframework.data.repository.crudrepository; impor org.springframework.sereotype. Gaolei pada 2018/6/25. */@RepositoryPublic Interface Storedao Extends CrudRepository <Store, Integer> {// Metode ini meminta semua produk di Store ID =? Melalui koneksi inline @Query ("Pilih S yang berbeda dari toko S. S.Shops Where S.id =? 1") Daftar <toke> findByshopList (Integer ID);} StoreService.java
Metode Implement dengan menyuntikkan Storedao oleh @Autowired
Paket com.Gaolei.Service; impor com.gaei.dao.stortao; impor com.gaei.entity.shop; impor com.gaei.entity.store; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.shereotype.notation. org.springframework.transaction.annotation.transactional; impor java.util.list;/*** dibuat oleh Gaolei pada 2018/6/25. */@Controller@transactionalpublic class storeService {@Autowired private storedao stor cukup; / *** Produk display store**/ daftar publik <tore> findByshopList (integer id) {return storedao.findbyshoplist (id); }} StoreAction.java
Menerapkan operasi data tertentu
Paket com.Gaolei.Action; impor com.Gaolei.entity.shop; impor com.gaei.entity.store; import com.gaei.service.shopservice; impor com.gaolei.service.storeservice; impor org.springframework.beans.factory.annotation.aRoLRIRERY; org.springframework.ui.model; impor org.springframework.web.bind.annotation.requestmapping; impor javax.servlet.http.httpservletrequest; impor javax.servlet. java.util.list;/*** dibuat oleh Gaolei pada 2018/6/26. */@Controller@requestMapping ("/store") Public Class StoreAction {@Autowired Private StoreService StoreService; / *** Store_shop_menu menampilkan produk toko**/ @RequestMapping ("showshop") public string showshop (respons httpservletResponse, permintaan httpservletrequest, model model) {string id = request.getParameter ("store_id"); // Dapatkan toko dengan ID =? Melalui pernyataan HQL, dan dapatkan semua produk di bawah daftar toko <store> Daftar = StoreService.findbyShopList (Integer.Valueof (ID)); // The Returned adalah koleksi toko, kelas toko dan kelas toko adalah satu-ke-banyak, dan toko-toko di bawah toko adalah daftar <topp>. Daftar <topp> ShopList = ArrayList baru <topp> (); // Cycling Traversal untuk mendapatkan setiap toko, tambahkan ke daftar baru <topp>, yang digunakan untuk menampilkan data di latar depan. untuk (toko toko: daftar) {System.out.println (Store.getName ()); untuk (toko toko: store.getshops ()) {System.out.println (shop.getName ()); ShopList.Add (toko); }} model.addattribute ("Daftar", ShopList); mengembalikan "admin/showshop"; }}Halaman pengalihan
Toko dilihat
Simpan produk
Kode front-end dihilangkan, dan yang utama adalah bahwa pernyataan di @Query ("******************") dapat digunakan untuk mencapai operasi yang kompleks dengan berbagai koneksi ke database.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.