2013-02-17 124 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 :-)