现在我为每个实体都有一个 DAO。
当我保存某个实体(例如 Employee)时,它需要链接到相应的 Node 实体才能显示在树中。
如何在保持代码尽可能简单的同时做到这一点?
编辑:这是一些添加的细节。在 OO 中,我想要实现的是能够让一个 Node 引用一个对象,并有可能在另一个 Node 下找到它。这样,只需要一个节点来描述一棵树,而可以从包含的对象中获取不同的属性。以下是我的看法:
节点 1-1 节点对象 1-1 员工
创建树的节点并不真正意味着一对一的关系,而是一对多的关系。
在这些术语中,您的Employee
表可以有一列表示其中每个实体所属的节点的 ID。
在你的 DAO 中,你应该然后
Employee
,Node
Node
通过查找其对应实体在数据库中查找对象的 ID ,Node
ID 创建员工实体。事实上,你应该在你的问题上更具体,不过。
根据以下评论进行编辑:
如果您的Node
表代表树,并且您希望每个表都Node
与 具有一对一的关系Employee
,则取决于哪些引用对您很重要。
如果您只需要数字 1,那么您将拥有Node
实体中员工的 ID。如果您两者都需要,那么您也可以将节点的 ID 放入您的Employee
实体中。
上面描述的 DAO 方法的逻辑仍然适用。
假设您在员工和员工详细信息之间存在一对一的关联。
Employee(Data Object)------>Employee Table
Employee Detail(Data Object)------>Employee Details Table
员工详细信息具有列员工 ID,它是员工表的外键。
现在你想坚持员工。首先,您将持久化 Employee 对象并获取其主键。现在使用 Employee 表的主键填充 Employee Detail 的属性 employeeId。现在保留 Employee Detail 对象。
要一次性加载这两个实体,请在 Employee 和 Employee Details Table 之间使用内部联接