我有一個帶有 MySql 資料庫的 spring-boot 應用程式。我在比薩臺和頂臺之間有一個多對多的關系,所以我做了一個額外的表來存盤這些關系。表:
CREATE TABLE topping (
id SERIAL PRIMARY KEY,
topping_name VARCHAR(64) NOT NULL,
price INT NOT NULL,
spicy bool NOT NULL
);
CREATE TABLE pizza (
id SERIAL PRIMARY KEY,
pizza_name VARCHAR(64) NOT NULL
);
CREATE TABLE pizza_with_topping (
pizza_id BIGINT UNSIGNED NOT NULL,
topping_id BIGINT UNSIGNED NOT NULL,
CONSTRAINT pizza_with_topping_ibfk_1
FOREIGN KEY(pizza_id)
REFERENCES pizza(id),
CONSTRAINT pizza_with_topping_ibfk_2
FOREIGN KEY(topping_id)
REFERENCES topping(id)
);
在 spring-boot 中,我發現我必須擴展 CrudRepository 介面,我可以從中呼叫 findAll() 方法來獲取表的內容。目前我得到了所有 3 個表的內容,如下所示:
Iterable<Pizza> pizzasInDb = pizzaRepository.findAll();
Iterable<Topping> toppingsInDb = toppingRepository.findAll();
Iterable<PizzaWithTopping> pizzaToppingConnectionTable = pizzaWithToppingRepository.findAll();
在此之后,基于這 3 個表,我手動創建了包含披薩名稱和配料的物件。因為我在pizza_with_topping 表中設定了外鍵,所以我想知道是否有更好的方法來獲得這個模型?也許呼叫內置函式會根據外鍵自動為我創建這個模型物件。
uj5u.com熱心網友回復:
就在這里。您可以使用 JPA 以多對多關系為您的域建模。如果您正在使用注釋,則可以使用 @ManyToMany 來實作這里有一個示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/367576.html
