2013-02-17 77 views
1

我在Visual Paradigm中用“ORM Persistable”类型“A”和“B”创建一个类图,其中A包含一个B的有序列表。我试图在类图中配置多对多关联,其中关联只能从A-> B导航,并且列表中B实例的顺序由它们在运行时添加到列表中的顺序给出。当Visual Paradigm创建hibernate映射文件时,这应该会导致ERD中的关联表“a2b”与字段“a_id”,“b_id”,“order_idx”以及定义列表属性的类型“A”的hibernate映射“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->集合类型 - >列表时,我收到此错误消息: null(A-> B)有序关系不指定有序列。

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

回答

0

我从Visual Paradigm获得了解决此问题的反馈: 要定义在java类型“​​A”和“B”之间的有序集合,并在hibernate映射中产生列表集合,必须经过以下步骤:

  • 定义ORM持久化类型的类图 enter image description here

  • 这些类型,例如,创建ERD图通过视觉范式移动“鼠标右键结合鼠标拖动”。 enter image description here

  • 将“排序栏”添加到表“A”到表“A_B”的关联中。右键单击关联并选择“打开规范”。 enter image description here
  • 然后点击“Ordered”复选框并选择具有订单索引的列。在此示例中,不存在此类列,因此我选择“创建列...” enter image description here
  • 在此示例中,必须配置列名称“Index”和数据类型int(10)(因为列didn'吨之前存在) enter image description here
  • 这导致ERD图如下图所示: enter image description here
  • 然后还配置从表“B”,以表“A_B”的关联被排序,并使用非常相同的索引列。 enter image description here
  • 现在,有序的多对多单向关联已完全配置,Visual Paradigm能够创建上面问题中引用的Hibernate映射。 Feine Sache :-)