1

「ORM Persistable」タイプ「A」および「B」を使用して Visual Paradigm でクラス図を作成しています。ここで、A は B の順序付けられたリストを保持します。クラス図で多対多の関連付けを構成しようとしています。ここで、関連付けは A->B からのみナビゲート可能であり、リスト内の B インスタンスの順序は、実行時にリストに追加された順序によって決まります。Visual Paradigm が休止状態のマッピング ファイルを作成すると、ERD に "a_id"、"b_id"、"order_idx" フィールドを持つ関連付けテーブル "a2b" が作成され、リスト プロパティを定義するタイプ "A" の休止状態のマッピングが作成されます。次のように、list-index が関連付けテーブルの「order_idx」である「bs」。

<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 インスタンスのリストを作成します (ただし、関連付けはこの方向にナビゲートできません)。「順序」プロパティを使用して A->B の関連付けタイプを作成しようとすると、これもうまくいきません (これは非常に明確ですが、リードを試しました ...)。また、ORM->Collection Type->List を定義すると、次のエラー メッセージが表示されます。

クラス図のVisual Paradigmでそのような関連付けを定義するにはどうすればよいですか?

4

1 に答える 1

0

この問題を解決するビジュアルパラダイムからのフィードバックがあります。Javaタイプ「A」と「B」の間に順序付けられたコレクションを定義して、Hibernateマッピングでリストコレクションを作成するには、次の手順を実行する必要があります。

  • クラス図でORM永続型を定義する ここに画像の説明を入力してください

  • これらのタイプのERDダイアグラムを作成します。たとえば、ビジュアルパラダイムの移動「マウスドラッグと組み合わせた右クリック」を使用します。 ここに画像の説明を入力してください

  • テーブル「A」からテーブル「A_B」への関連付けに「注文列」を追加します。関連付けを右クリックして、[仕様を開く]を選択します。 ここに画像の説明を入力してください
  • 次に、[注文済み]チェックボックスをクリックして、注文インデックスのある列を選択します。この例では、そのような列はまだ存在しないため、「列の作成...」を選択します。 ここに画像の説明を入力してください
  • この例では、列名「Index」とデータ型int(10)を構成する必要があります(列が以前に存在していなかったため) ここに画像の説明を入力してください
  • これにより、以下に示すようなERD図が作成されます。 ここに画像の説明を入力してください
  • 次に、テーブル「B」からテーブル「A_B」への関連付けを順序付けて構成し、まったく同じインデックス列を使用します。 ここに画像の説明を入力してください
  • これで、順序付けられた多対多の一方向の関連付けが完全に構成され、Visual Paradigmは、上記の質問で引用したように、休止状態のマッピングを作成できます。Feine Sache :-)

于 2013-02-18T08:22:56.997 に答える