繁体   English   中英

如何坚持一对一的关系? (没有框架)

[英]How to persist a one-to-one relationship ? (no framework)

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

当我保存某个实体时,比如说Employee,它需要链接到相应的Node实体以显示在树中。

如何在保持代码尽可能简单的同时完成这项工作?

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

节点1-1 NodeObject 1-1员工

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

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

在你的DAO中,你应该

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

实际上,你应该在你的问题中更具体。

根据以下评论编辑:

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

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

如果您只需要编号1,那么您将在Node实体中拥有该员工的ID。 如果您需要两者,那么您还可以将Node的ID放在Employee实体中。

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

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

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

Employee Details具有列employee name,它是Employee表的外键。

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

要在单个go中加载两个实体,请使用Employee和Employee Details Table之间的内部联接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM