0

现在我为每个实体都有一个 DAO。

当我保存某个实体(例如 Employee)时,它需要链接到相应的 Node 实体才能显示在树中。

如何在保持代码尽可能简单的同时做到这一点?

编辑:这是一些添加的细节。在 OO 中,我想要实现的是能够让一个 Node 引用一个对象,并有可能在另一个 Node 下找到它。这样,只需要一个节点来描述一棵树,而可以从包含的对象中获取不同的属性。以下是我的看法:

节点 1-1 节点对象 1-1 员工

4

2 回答 2

1

创建树的节点并不真正意味着一对一的关系,而是一对多的关系。

在这些术语中,您的Employee表可以有一列表示其中每个实体所属的节点的 ID。

在你的 DAO 中,你应该然后

  • 将你想要连接的对象作为参数传递给你的方法EmployeeNode
  • Node通过查找其对应实体在数据库中查找对象的 ID ,
  • 并使用来自对象的数据和获取的NodeID 创建员工实体。

事实上,你应该在你的问题上更具体,不过。

根据以下评论进行编辑:

如果您的Node表代表树,并且您希望每个表都Node与 具有一对一的关系Employee,则取决于哪些引用对您很重要。

  1. 您希望能够引用属于某个节点的员工(可能)。
  2. 您想找到员工属于哪个节点(不太可能,但可能)。

如果您只需要数字 1,那么您将拥有Node实体中员工的 ID。如果您两者都需要,那么您也可以将节点的 ID 放入您的Employee实体中。

上面描述的 DAO 方法的逻辑仍然适用。

于 2013-08-31T12:13:21.913 回答
1

假设您在员工和员工详细信息之间存在一对一的关联。

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

员工详细信息具有列员工 ID,它是员工表的外键。

现在你想坚持员工。首先,您将持久化 Employee 对象并获取其主键。现在使用 Employee 表的主键填充 Employee Detail 的属性 employeeId。现在保留 Employee Detail 对象。

要一次性加载这两个实体,请在 Employee 和 Employee Details Table 之间使用内部联接

于 2013-08-31T12:15:29.743 回答