1

我正在使用“ORM Persistable”类型“A”和“B”在 Visual Paradigm 中创建一个类图,其中 A 包含 B 的有序列表。我正在尝试在类图中配置多对多关联,其中关联只能从 A->B 导航,并且列表中 B 实例的顺序由它们在运行时添加到列表中的顺序给出。当 Visual Paradigm 创建休眠映射文件时,这应该会在 ERD 中生成关联表“a2b”,其中包含字段“a_id”、“b_id”、“order_idx”,以及定义列表属性的类型“A”的休眠映射“bs”,其中列表索引是关联表的“order_idx”,如:

<class name="A" table="a"> 
  <id name="id" column="id" /> 
  <list name="bs" table="a2b"> 
  <key column="a_id" /> 
  <list-index column="order_idx" base="1" /> 
    <many-to-many class="B" column="b_id" /> 
  </list> 
</class> 

但我无法让它工作。Visual Paradigm 在关联表中为 A 类型和 B 类型创建索引列,并为 B 类型中的 A 实例创建一个列表(尽管关联在此方向上不可导航)。如果我尝试使用“order”属性为 A->B 创建关联类型,这也行不通(这很清楚,但我尝试了任何线索......)。此外,当我定义 ORM->Collection Type->List 时,我收到此错误消息:null (A->B) 有序关系未指定有序列。

如何在类图中的 Visual Paradigm 中定义这样的关联?

4

1 回答 1

0

我从 Visual Paradigm 得到了解决此问题的反馈:要在 java 类型“A”和“B”之间定义一个有序集合,从而在休眠映射中生成一个列表集合,必须执行以下步骤:

  • 在类图中定义 ORM Persistable 类型 在此处输入图像描述

  • 为这些类型创建 ERD 图,例如通过 Visual Paradigm 移动“右键单击结合鼠标拖动”。 在此处输入图像描述

  • 将“订单列”添加到从表“A”到表“A_B”的关联中。右键单击关联并选择“打开规范”。 在此处输入图像描述
  • 然后单击复选框“Ordered”并选择具有订单索引的列。在此示例中,尚不存在此类列,因此我选择“创建列...” 在此处输入图像描述
  • 在此示例中,必须配置列名“Index”和数据类型 int(10)(因为该列之前不存在) 在此处输入图像描述
  • 这会产生如下所示的 ERD 图: 在此处输入图像描述
  • 然后还配置从表“B”到要排序的表“A_B”的关联并使用相同的索引列。 在此处输入图像描述
  • 现在,有序多对多单向关联已完全配置,Visual Paradigm 能够创建上述问题中引用的休眠映射。Feine Sache :-)

于 2013-02-18T08:22:56.997 回答