gpt4 book ai didi

java - 用于多对一映射的 Hibernate 设计

转载 作者:行者123 更新时间:2023-11-29 22:21:09 24 4
gpt4 key购买 nike

假设有一家花店有固定类型的花束

class FlowerShop{
Bouquet[] bouquets;
}

花束有几种种花

 class Bouquet{
int bouquetId;
List<Flower> flowers;
}

花有一些固定属性

class Flower{
String name;
ColorEnum color;
int flowerId;
int bouquetId;
... //other properties
}

实现这一目标的合适表格设计是什么?

选项 1:由于 Bouquet 类只有 bouquetId,因此只有一张表

 Flowers {flowerId,bouquetId,name,color,etc,etc..}

在这里,我必须迭代花对象并使用 map bouquetId->List<Flower>之后我需要构造 Bouquet 对象,每个 bouquetId然后用花束对象数组构造 FlowerShop

选项 2:

Flowers    {flowerId,name,color,etc,etc} 
Bouquets {bouquetId,flowerId}
FlowerShop {bouquetId}

我不太确定第三张 table 。只有一家花店。我想我需要选择所有花束对象并以编程方式从花束创建 FlowerShop 对象。我可以通过 hibernate 来创建 FlowerShop 对象吗?

最佳答案

您只能创建花表。

Flowers {flowerId,BouquetEnum_name,name,color,etc,etc} 

对于花束,您将创建一个枚举而不是表。所以当你想获取一束花中的所有鲜花时,你可以将某个花束对应的Enum放在flowers查询的WHERE子句中。只有一家花店吗?因此,您将以编程方式创建它,该对象将由鲜花列表组成,其中每个列表代表一种花束(花束的种类将在 BouquetEnum 上)。

我猜这似乎是你的选择 1。

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

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