当前位置: 首页 > 面试题库 >

Java ORM映射中的“拥有方”是什么?

令狐钧
2023-03-14
问题内容

拥有方到底是什么意思?一些映射示例(一对多,一对一,多对一)的解释是什么?

以下文本摘录自Java EE 6文档中@OneToOne的描述。您可以在其中看到概念拥有方面。

定义与另一个具有一对一多重性的实体的单值关联。通常不必显式指定关联的目标实体,因为通常可以从被引用对象的类型中推断出该目标实体。如果关系是双向的,则非拥有方必须使用OneToOne批注中的mappingBy元素来指定拥有方的关系字段或属性。


问题答案:

你可以想象拥有方是引用另一方的实体。在你的摘录中,你具有一对一的关系。由于它是对称关系,因此如果对象A与对象B有关,那么最终将得出结论,反之亦然。

这意味着将对对象B的引用保存到对象A中,并将对对象A的引用保存到对象B中是多余的:这就是为什么你选择哪个对象“拥有”另一个引用该对象的对象。

当拥有一对多关系时,与“许多”部分相关的对象将是拥有方,否则,你将不得不存储从单个对象到多个对象的许多引用。为了避免这种情况,第二类中的每个对象都将有一个指向它们所引用的单个对象的指针(因此它们是拥有者)。

对于多对多关系,由于无论如何你将需要一个单独的映射表,因此不会有任何拥有的一方。

总而言之,拥有方是具有相互参照的实体。



 类似资料:
  • 问题内容: 拥有方 到底是什么意思?一些映射示例( 一对多,一对一,多对一 )的解释是什么? 以下文本摘录自Java EE 6文档中 @OneToOne 的描述。您可以在其中看到概念 拥有的一面 。 定义与另一个具有一对一多重性的实体的单值关联。通常不必显式指定关联的目标实体,因为通常可以从被引用对象的类型中推断出该目标实体。如果关系是双向的, 则非拥有方 必须使用OneToOne批注中的mapp

  • 我不熟悉Spring数据jpa,并试图理解@OneToOne映射。假设我有一个员工实体和一个公司实体,如果我想映射这两个实体,那么我可以在员工实体上使用一对一映射,这意味着一个员工只能属于一个公司。这种理解是错误的吗?如果一名员工属于一家公司(比如XYZ),那么该公司(XYZ)不能映射到其他员工? 我读过一些帖子,但没有完全理解。

  • 蜻蜓映射是一款动态域名解析软件,外网通过蜻蜓映射域名随时随地访问到内网搭建服务。 蜻蜓映射是内网穿透,端口映射的软件服务商。支持HTTP、HTTPS、TCP、UDP、等多种协议。 无需设置路由器端口映射即可外网访问内网服务器。适用于远程桌面、 远程服务器、远程办公、游戏联机、微信开发调试等内网穿透场景。蜻蜓映射端口映射官网 如何使用蜻蜓映射 注册账号 下载客户端并登录 添加映射

  • 问题内容: 我正在尝试建立一个表,该表链接来自不同表的两个记录。这些链接本身需要与另一个表相关。因此,目前,我的表格如下所示: 但是,项目之间的链接不是定向的(即,项目是链接中列出的第一项还是第二项都没有关系)。理想情况下,我希望item_id字段只出现两次;因为它是我必须要小心,始终检查是否有重复项,以确保如果已经存在14到12,则永远不会创建将12到14链接的记录。 是否有一个优雅的数据库设计

  • 问题内容: 我想在Java SE中拥有 我必须要做些什么?我在我的项目中使用postgres数据库和maven。 我已经在阅读有关Weld的内容(但看起来只像CDI)。我不知道如何增加焊接实体管理器的可能性。我知道我可以通过获得实体管理器 但它不如注射方便。 如果有关于它的任何教程,那就太好了。无论如何,谢谢您的帮助! 问题答案: 首先,EJB是Java EE的一部分,因此您不能在Java SE中

  • 问题内容: 这样做的动机是我对StringBuilder最佳实践的一个较早问题的回答(“如意算盘”)。如果StringBuilder是可扩展的,则特定于域的子类可以扩展其流畅的接口,这将使StringBuilder传递给构建较大字符串部分的许多方法的代码更加严格。 我正在考虑为番石榴人士提供一些建议-也许是StringBuilder代表。 与仅使用final方法相比,StringBuilder用作