gpt4 book ai didi

java - Hibernate 映射到自引用、多对多映射

转载 作者:行者123 更新时间:2023-12-02 10:07:38 25 4
gpt4 key购买 nike

在我的数据库中,我有一个Food,它与其他成分Foods 具有多对多关系。这种关系表示为...

+=============Foods============+    +==========Ingredients===========+
| Id | Name | Description | | FoodId | IngredientId | Amount |
+==============================+ +================================+
| 1 | Ice Cream | ........... | | 1 | 2 | 300 |
+------------------------------+ +--------------------------------+
| 2 | Milk | ........... |
+------------------------------+

然而,在域模型中,最符合逻辑的数据结构是食物和数量的映射。最终,当我加载“冰淇淋”时,我需要 map 包含所有成分 Foods (通过成分表找到)以及相应的值,但我无法弄清楚如何这样做。

@Entity
@Table(name="Foods")
public class Food {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="Id")
private int id;

@Column(name="Name")
private String name;

@Column(name="Description")
private String description;

@ManyToMany ???
private Map<Food, Integer> ingredients;

最佳答案

我首先会创建一个新实体 Ingredient ,它有一个由两个外键以及 amount 组成的复合键整数。您可以使用Food直接作为两个外键的字段类型。

然后在你的Food中您可以添加 @OneToMany 实体Set<Ingredient>映射 idIngredientfoodId 。然后您将能够获得所有 Ingredient一个条目 Food很容易。

关于java - Hibernate 映射到自引用、多对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com