问题标签 [bidirectional-relation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
572 浏览

java - 休眠/“绝对需要双向链接”?

这是官方Hibernate教程的摘录

首先,请记住 Hibernate 不会影响正常的 Java 语义。在单向示例中,我们如何在 Person 和 Event 之间创建链接?您将 Event 实例添加到 Person 实例的事件引用集合中。如果要使此链接双向,则必须在另一端执行相同操作,方法是在 Event 中添加对集合的 Person 引用。这种“在两边设置链接”的过程对于双向链接是绝对必要的。

许多开发人员进行防御性编程并创建链接管理方法以正确设置双方(例如,在 Person 中):

在这种情况下,“绝对”这个词是什么意思?:

  • 这意味着只要当前逻辑过程完成就建议保持关系一致,但显然会发生持久性?
  • 这意味着如果不设置对方(不拥有关系),就不能严格执行持久性?

换句话说,如果我的“添加”方法是:

0 投票
1 回答
92 浏览

c# - 如何在 C# 中正确地自动更新一对多双向关系

在示例游戏引擎服务器中,游戏世界可以由 World 对象表示。游戏可能有多个游戏世界,一个世界中的玩家只需要接收该世界中单位的位置数据。

然而,一段代码还需要能够轻松地查找一个单元所在的世界,因此单元对象本身会跟踪世界引用。

这适用于查找,但是当程序员不知道正在发生的对象之间的关系时更改数据时很快就会出现问题,因此我将其更改UnitsWorld只读并在Unit.

这行得通,但感觉有更好的方法来做到这一点。特别是当我添加更多需要以相同方式链接的东西时(aWorld也有Structures 和Players),会出现很多重复的功能。有没有更好的方法来实现这种一对多的关系,而无需手动更新双方?

0 投票
2 回答
55 浏览

symfony - Symfony2双向关系finBy查询

我想使用两个类字段在双向关系中进行查询,我的类是:

现在我需要做一个查询,可以通过友好的 url 过滤信息

例如:

网页.com/company_friendly_url/branch_friendlyurl

我输了,因为我不知道如何做正确的查询我正在尝试这个,但它现在正在工作。

其他人有想法如何做到这一点?

0 投票
1 回答
1220 浏览

java - 以一对多作为所有者和不可为空的外键的双向关联

我在与作为所有者的一对多方建立双向关联时遇到问题。我将使用稍作修改的Hibernate 文档中的示例来描述我的问题。

我知道在数据库世界中,上述关系的所有者将是士兵,因为它具有带有外键的列,但是这在现实世界的逻辑中没有意义,因为士兵是部队的一部分,而部队拥有士兵。

当我坚持他们的部队时,我希望能够使用 CascadeType.ALL 自动保存所有士兵。

休眠文档表明:

此解决方案未优化,将产生额外的 UPDATE 语句。

例如。日志

问题是,当我们第一次尝试在没有 troop_fk 的情况下插入士兵时,会抛出异常,因为该列不可为空。

为什么 Hibernate 不只是将 troop_fk 添加到插入中,而不是稍后用它更新记录?有没有办法让我做我上面描述的事情?

0 投票
2 回答
17387 浏览

neo4j - Neo4j 双向关系

有没有办法使用 Cypher 在 Neo4j 中创建双向关系?我希望这种关系是双向的,而不是在两个方向上建立两个单向关系例如:

而不是:

提前致谢 :)

0 投票
0 回答
133 浏览

symfony - 如何使用 NativeQuery 和 ResultSetMapping 排除双向关系?

我有 2 个实体,用户和客户,具有 OneToOne 双向关系。用户实体也与发票实体有双向关系:

现在,我想使用 NativeQuery 和 ResultSetMapping 检索用户及其客户关系,仅此而已。我试过了

但这会返回用户,以及他所有的双向关系:

我想在返回的数据中去掉这些 Invoice 关系。我应该对 ResultSetMapping 做些什么?

注意:由于特定原因,我不能在此功能上使用经典 DQL,我确实需要使用 NativeQuery。

0 投票
0 回答
186 浏览

python - MongoEngine中的双向引用

PHP Doctrine 支持双向引用。我想知道 MongoEngine 是否有类似的东西,例如,当我添加用户的帖子时,我不需要手动保持双方同步。

我也可以只将引用存储在关系的many一边one-to-many,并使用类似的东西Post(user=user_a)来获取 user_a 的所有帖子。但我想知道这两种方法的权衡。另外,多对多关系怎么样?

非常感激!

0 投票
1 回答
41 浏览

neo4j - neo4j 中的双向数据建模问题

我有两个节点,A 和 B,A 与 B 对话,B 与 A 对话,(A)-[:talksTo]-(B)

A对B有情感值,B对A有情感值。

所以存在问题,我需要 A 到 B 关系来存储 B 到 A 关系也想要存储的值(相同的键)。

所以我会尝试做一些查询,例如 MATCH (A:person)-[:talksTo]-(B:person) where A.sentiment < -2 return A;

所以这里 A 对 B 的情绪将不同于 B 对 A 的情绪,因此需要分离。

我尝试使用唯一的键名来指定方向 - 但这会使查询变得困难,除非我可以使用通配符 ex 进行查询: ... where A.Asentiment < -2 将被查询为 ... where A.*sentiment < -2

我能想到的另一种方法是制作两个不同的图,1)A 与 B 图对话,B 与 A 图对话……但这会使查询变得棘手,因为我可能会为单节点查询返回多个节点或者,如果我必须将单个节点 key:value 更新为其他内容。我希望每人有一个节点名称。

有任何想法吗?

0 投票
1 回答
53 浏览

sharepoint - 像关系这样的共享点保管箱

我正在寻找一种将文件夹同步到共享点站点并具有双向关系的方法,以便对文件夹进行的任何更新都会出现在站点上,并且在站点上进行的任何更新都会出现在文件夹中的文件上。有任何想法吗

0 投票
1 回答
1215 浏览

hibernate - Hibernate Mapping:在hibernate中删除一对多双向映射中的孩子

我有一个父对象及其详细对象。下面的代码中提到了映射 -

父对象映射

子对象映射

我能够拯救一个有 3 个孩子的新父母。现在,在更新操作中,

在 parent.childSet 中,我将删除所有值并设置新值。当我做 session.update(parent) 时,我的要求是,

  1. 删除父级的所有现有子级 - 因为 parent.childSet 没有它们。
  2. 插入 parent.childSet 中可用的新值。

这里,parent.childSet 表示父类/HBM 映射中的集合。

现在发生的问题是,

  1. 它抛出异常 - “无法将 NULL 插入(“CHILD”。“PARENT_ID”)”

如果不清楚,我会继续更新问题。

谢谢你的时间!