教义 2 中的关系

2024-03-17

我完全没有理解教义中的关联。我想知道单向和双向关系有什么区别。学说2中的正方和反方是什么


双向和单向关系

双向和单向与 PHP 对象中的引用有关。

如你看到的here http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html#many-to-many-unidirectional,单向和双向引用的数据库模式实际上是相同的。区别在于:

  • 单向:A类对象引用B类对象,但反之则不然。
  • 双向:A类对象引用B类对象,B类对象引用A类对象

逆方和己方

拥有和反面的概念是将对象模型更改持久保存到数据库。Here http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html#owning-side-and-inverse-side是详细的解释。

简而言之,原则 2 不跟踪对象模型的变化。假设您有两个班级:Parent and Child. Class Parent有收藏children。 'Child' 类有参考parent。以下代码将使您的数据模型不一致:

$parent = new Parent();
$child = new Child();
$parent->children->add($child);

在实体类中拥有公共属性是一个坏主意,并且强烈建议不要这样做,但出于演示原因,这是可以的。所以,添加以下代码$child to $parent,但不设置$child->parent。领域模型变得不一致(这就是为什么 Doctrine 手册建议将关联逻辑封装到实体模型中 http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-associations.html#association-management-methods),但仍然可以将该对象持久保存到数据库中。

这就是拥有和反面的概念变得重要的地方。 Doctrine将根据状态来持久化实体关系拥有方。所以,在我们的例子中,$parent=>$child关系将是:

  • 坚持,如果拥有一方Parent class
  • 忽略,如果拥有一方Child class

请注意,拥有方标记为反转关系注释。

有一个推荐 http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html#picking-owning-and-inverse-side关于选择拥有方和反方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

教义 2 中的关系 的相关文章

随机推荐

  • 从 Java 调用 Windows 内核函数的最简单方法是什么?

    在寻找如何做到这一点时 我发现了一些关于不同选项的模糊讨论 例如 JNI 与 JNA 但具体示例并不多 上下文 JavaFile renameTo 无法完成其工作 无论出于何种原因 有点问题 https stackoverflow com
  • 调用堆栈仅包含外部代码

    我希望当我点击另一个时变得可见 我使用 jQuery 来做这件事 但我对此并不擅长 我写了脚本 我通过 完成的布局 Panel visiblePanel new Panel visiblePanel Style Add background
  • 将列表打印为表格数据

    我对 Python 还很陌生 现在我正在努力如何很好地格式化我的数据以进行打印输出 我有一个用于两个标题的列表 以及一个应该是表格内容的矩阵 就像这样 teams list Man Utd Man City T Hotspur data n
  • 在 Mac 上安装 xgboost - ld: 未找到库

    我正在尝试在我的 Mac 上安装支持 OpenMP 的 xgboost 我安装了gcc没有问题 brew install gcc without multilib 然后克隆 git 存储库 git clone recursive https
  • 在 Python 中使用 for 循环从外部文件打印列表中的每一项

    我正在编写一个从 txt 文件读取 2D 列表的程序 我试图循环遍历该列表 并打印其中的每个项目 我使用了 for 循环来遍历列表中的每个项目 txt 文件中二维列表的内容为 1 10 Hello World 这是我到目前为止打开文件 读取
  • Bokeh - 堆叠和分组图表

    是否可以在散景中创建一个既堆叠又分组的图 有点像http www highcharts com demo column stacked and grouped http www highcharts com demo column stac
  • Datastax java 驱动程序 3.0.0 未找到枚举注释

    希望我能很好地阅读文档 http docs datastax com en developer java driver 3 0 java driver reference crudOperations html http docs data
  • 如何使用 glide 加载圆形 appcompat 操作栏徽标

    到目前为止 我已经完成了以下操作 如果我省略圆形图像创建部分 它可以正常工作 但我必须在操作栏中显示圆形图像 这是我到目前为止所尝试过的 任何帮助将不胜感激 Glide with mContext load doctorDetailsLis
  • 使用 Android SDK 3.0 登录 Facebook 导致 ANR 或根本无法工作

    为了让用户在 Android 应用程序中登录 Facebook 我尝试使用以下代码 用户登录后 应获取其所有朋友的位置 不幸的是 此代码有时会导致 ANR 如 Google Play 开发者控制台中报告的那样 有时甚至不起作用 如果我删除
  • 访问 iframe 中的表

    i have a website login email protected cdn cgi l email protection pas 12345678 log in and go to the drivers section left
  • 代码签名错误:身份“iPhone Developer”与默认钥匙串中的任何有效证书/私钥对不匹配

    我正在尝试创建我的应用程序的临时发行版以发送给同事 尝试存档我的项目以供分发时出现以下错误 代码签名错误 身份 iPhone 开发者 与任何有效的不匹配 中的证书 私钥对 默认钥匙串 这些是我遵循的步骤 我已在配置门户中注册了该设备 我已在
  • Vulkan命令执行顺序

    引用Vulkan 1 0规范文档 chapter 5 Command Buffers 第4段 除非另有说明 并且没有显式同步 否则通过命令缓冲区提交到队列的各种命令可以按相对于彼此的任意顺序执行 和 或同时执行 在第2 1 1章 队列操作
  • LDADD 和 LIBADD 有什么区别?

    我正在尝试设置一个混合使用 libtool 库和可执行文件的 automake 项目 并且我很难理解 automake 文档 尤其是 as 涉及告诉编译器进行链接 那么有人可以解释一下之间的区别吗LDADD and LIBADD 像 什么时
  • 如何将 cv::Mat 转换为 QImage 或 QPixmap?

    我尝试环顾四周并尝试了我发现的所有内容 但尚未找到解决此问题的方法 我正在尝试通过单击按钮来更新 QT 应用程序中的图像 在构造函数中 我成功地显示了图像 cv Mat temp cv Mat this gt cv size CV 8UC3
  • “推送通知”-反馈、卸载应用

    Apple 推送通知 反馈服务 您如何知道用户何时卸载您的应用程序 这样您就可以从推送服务器中删除他们的设备令牌 你根本不知道 您可以获取对于同一应用程序令牌字符串可能相同的设备标识字符串 并跟踪特定设备的令牌是否已更改 因此 您可以使用新
  • Web Essentials 2017 和 TypeScript 定义生成

    刚刚从 Visual Studio 市场安装了 Web Essentials 2017 但似乎缺少从 C 类创建 TypeScript 定义的功能 在 Web Essentials 2015 中 我将鼠标右键悬停在 C 类文件上 将会出现一
  • JavaScript 对象字面量和数组

    我有以下 JavaScript 代码 oCoord x null y null var aStack oCoord x 726 oCoord y 52 aStack push oCoord oCoord x 76 oCoord y 532
  • file_get_contents 失败并显示“getaddrinfo 失败:没有与主机名关联的地址”

    我正在尝试从另一台主机获取该页面 我按照 hph 手册所述 page file get contents http www example com echo page 但它失败了 在 apache 日志中我得到以下内容 Mon Oct 12
  • 为什么scss/css中文件名前面要加“_”或“_”?

    Why put scss 中文件名前面 filename scss 为什么需要 下划线 是 scss 的部分内容 这意味着样式表将被导入 import 到主样式表 即 styles scss 使用部分的优点是您可以使用多个文件来组织代码 并
  • 教义 2 中的关系

    我完全没有理解教义中的关联 我想知道单向和双向关系有什么区别 学说2中的正方和反方是什么 双向和单向关系 双向和单向与 PHP 对象中的引用有关 如你看到的here http www doctrine project org docs or