Java HashMap 作为 MySQL 中的一个元素通过 JPA

Java HashMap as an element in MySQL via JPA

我已经问过这个问题,但没有得到直接的回答: .

这个 MySQL 数据库有三个表:MealIngredientIngredientListAndAmountMeal 中的每一行对应于 IngredientListAndAmount 中的一行。 IngredientListAndAmount 可以存储为 Java HashMap,其中 Ingredient ID 是键,整数数量是值。

如何在 MySQL 数据库中表示这种依赖关系?

您寻求的通常称为 加入 table。这就是 SQL 表示两个实体之间多对多关系的方式。最纯粹的 pure join tables joining tables A 和 B 由两列组成,一列包含 A_id,另一列包含 B_id。这两列一起构成了join的主键table.

在您的情况下,您将在联接中包含三列 table:

 Meal_id        pk, fk to Meal table
 Ingredient_id  pk, fk to Ingredient table
 Amount         something giving the amount

如果您想要某餐的配料,可以使用这样的查询:

SELECT m.Mealname, i.IngredientName, mi.Amount
  FROM Meal AS m
  JOIN MealIngredient AS mi ON m.Meal_id = mi.Meal_id
  JOIN Ingredient AS i ON mi.Ingredient_id = i.Ingredient_id