【问题标题】:Hibernate design for many to one mapping多对一映射的休眠设计
【发布时间】:2015-08-22 06:50:43
【问题描述】:

假设有一个花店有固定种花束

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类只有花束ID,所以只有一张桌子

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

在这里我将不得不遍历花对象并使用地图bouquetId-&gt;List&lt;Flower&gt; 在此之后,我需要构建每个花束 ID 的花束对象 然后用花束对象数组构造 FlowerShop

选项 2:

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

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

【问题讨论】:

    标签: java mysql database hibernate orm


    【解决方案1】:

    您只能创建 Flower 表。

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

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

    我猜这似乎是您的选项 1。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多