0

現在、エンティティごとに DAO があります。

従業員などの特定のエンティティを保存すると、対応するノード エンティティにリンクしてツリーに表示する必要があります。

コードをできるだけシンプルに保ちながら、これを行うにはどうすればよいでしょうか。

編集:ここに追加の詳細があります。オブジェクト指向で私が達成したいのは、ノードが別のノードの下で見つかる可能性のあるオブジェクトを参照できるようにすることです。このように、ツリーを記述するためにノードのみが必要であり、含まれているオブジェクトからさまざまなプロパティを取得できます。これが私が物事を見る方法です:

ノード 1-1 ノードオブジェクト 1-1 従業員

4

2 に答える 2

1

ツリーを作成するノードは、実際には 1 対 1 の関係を意味するのではなく、1 対多の関係を意味します。

これらの用語では、Employeeテーブル内の各エンティティが属するノードの ID を表す列をテーブルに含めることができます。

あなたのDAOでは、次にすべきです

  • メソッドにパラメータとして接続したい オブジェクトEmployeeとオブジェクトを渡します。Node
  • Node対応するエンティティを見つけて、データベース内のオブジェクトの ID を検索します。
  • オブジェクトからのデータと取得したNodeID を使用して従業員エンティティを作成します。

ただし、実際には、質問はより具体的にする必要があります。

以下のコメントに基づいて編集します。

テーブルがツリーを表し、それぞれに と 1 対 1 の関係を持たNodeせたい場合は、どの参照が重要かによって異なります。NodeEmployee

  1. ノードに属する従業員を参照できるようにしたい (おそらく)。
  2. 従業員が属するノードを見つけたいとします (可能性は低いですが、可能性はあります)。

番号 1 のみが必要な場合は、Nodeエンティティに従業員の ID があります。Employee両方が必要な場合は、ノードの ID をエンティティに入れることもできます。

上記の DAO メソッドのロジックは引き続き適用できます。

于 2013-08-31T12:13:21.913 に答える
1

従業員と従業員の詳細の間に 1 対 1 の関連付けがあるとします。

Employee(Data Object)------>Employee Table
Employee Detail(Data Object)------>Employee Details Table

従業員の詳細には、従業員テーブルへの外部キーである従業員 ID 列があります。

次に、従業員を永続化します。まず、Employee オブジェクトを保持し、その主キーを取得します。ここで、Employee Detail のプロパティ employeeId に Employee テーブルの主キーを入力します。ここで、Employee Detail オブジェクトを永続化します。

両方のエンティティを一度にロードするには、従業員と従業員の詳細テーブルの間で内部結合を使用します

于 2013-08-31T12:15:29.743 に答える