问题标签 [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 投票
1 回答
232 浏览

java - 我是否也应该在 Java 中更新双向关系?

假设我有UserGroup实体并希望它们之间有一对多的关系。即每个都User属于一个Group,而anyGroup可以包含许多Users。

集团实体:

和用户实体:

以下是应用程序代码:

不幸的是,getUser()总是回来null。为什么?不是设置为相关用户的代表吗?我做错了什么?

我应该自己做集合同步吗?Hibernate 不会自动填充字段吗?

更新 1

我的休眠配置如下:

添加的

没有帮助。

更新 2

添加

没有帮助,getUsers()仍然返回null。

0 投票
2 回答
6182 浏览

hibernate - Hibernate:双向映射 OneToMany 不起作用

我有以下三个课程:

第二类:

第三类:

我在这里遵循了官方休眠文档:http: //docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#collections-bidirectional

这个例子在这里:http: //viralpatel.net/blogs/hibernate-one-to-many-annotation-tutorial/

问题是,在 DB 中插入 EventTO 时,我在 eventId 上遇到约束违规,因为休眠无法在 EventAssignedResourceTO 的 eventTO 中设置新创建事件的 id 并且 id 为 null 。

所以我决定去掉EventAssignedResourceTO中JoinColumn注解中的可更新和可插入标签。

现在插入工作正常但是当我想删除一个事件时,休眠首先删除 AssignedResourceTO 然后是事件,最后我不知道为什么它会尝试更新其表中的 AssignedResourceTO 记录。在这里,它尝试将 eventTO 的 id 设置为 NULL 并且我得到约束违规。更新也会发生同样的情况。

我真的很困惑,因为官方文档中写的内容不起作用,而且我无法在网上找到任何解决方案。

任何的想法??

干杯

0 投票
1 回答
105 浏览

mongodb - 使用双向查询检索 mongoDB 中的记录

我有两个系列 -TicketsUsers. 哪里user可以有一对多tickets。票据集合定义如下

ownerId 用于查找属于特定人员的所有票证。我需要编写一个查询来获取所有没有票的用户。

如何编写此查询而不必遍历所有用户,检查用户 ID 是否出现在任何票证中?

双向存储会导致我出现任何性能问题吗?例如,如果我要更改我的users收藏并添加一个数组tickets: [ticketID, ticketID2, ...]

0 投票
2 回答
127 浏览

c# - 保持双向关系和实体框架的完整性

我正在寻找关于维护与实体框架保持一致的 C# POCO 之间的双向关系的最佳实践。

一个家庭有零到多个家庭成员,一个人总是有一个家庭。现在当我实例化一个新的人和一个新的家庭时:

然后我会将这个人添加到家庭中,反之亦然。这需要:

我想知道是否有更好的方法可以做到这一点,因为如果我将 Person 添加到 Family 中,则应该始终将 Persons 家庭属性设置为该家庭。如果开发人员忘记这样做,您最终会得到孤立对象。

我是否使用完整的 getter 和 setter 来执行此操作?有没有一些自动化的方法来做到这一点?

使用 Entity Framework 存储这些对象时有什么特别的注意事项吗?

UML 图

提前致谢

0 投票
1 回答
128 浏览

python - Python中ZODB中的双向映射

我知道在 ZODB 中,您可以使用BTree来存储大量数据,并根据总排序与树大小成对数的键进行查找。

问题是,我有一些PersistentobjectFoo和一些其他Persistentobject ,我想在bidictBar的意义上存储它们之间的双向映射。

即执行两种访问应该是有效的(对数时间):

我现在能想到的唯一方便的方法是简单地将我的存储需求加倍并维护两个BTrees:一个存储从 A 到 B 的映射,另一个存储从 B 到 A 的映射。当然,在任何时候,BTree 都将包含相同的元素,因为映射的添加和删除是同时在两者上执行的。

我对此的担忧是,由于没有数据库约束,这些树可能会解耦。你认为这可行吗?

0 投票
1 回答
1998 浏览

relational-database - 我们如何在 Amazon dynamo 数据库和关系数据库之间同步数据

我们正计划使用 Amazon Dynamo db 开发一个应用程序。实际上,这个应用程序正在从我客户的数据库中收集信息(我的客户正在使用 MYSQL、Oracle、MSsql/任何其他关系数据库),在我的应用程序中执行一些处理并将结果发送回客户的数据库。此同步过程应始终有效(或每 1 分钟间隔一次)。

我想知道是否有任何工具(或技巧)可用于亚马逊发电机数据库和关系数据库之间的同步?

0 投票
1 回答
1077 浏览

java - JPA - 如何在双向 OneToMany/ManyToOne 关系中更新集合

我有一个以这种方式设计的所有者(类别)和一个客户(论坛)实体:

类别

论坛

在我的 web 应用程序的某处,我显示了论坛列表,并对其中一个执行了一些业务操作,例如更改其位置。

我的问题是更改很好地保留在数据库中,但未反映在 OneToMany 映射集合上。因此,当我刷新显示列表的页面时,它不会显示新位置,而是显示前一个位置。

我用来更新元素位置的代码相当于一个简单的em.merge( forum ). 我在许多主题中读到我应该“手动管理”双向关系,否则我会面临这种问题。这是我的两个问题:

  • 我在 EclipseLink 和 Hibernate 上都试过了,虽然它与 Hibernate 配合得很好(列表已更新),但在 EclipseLink 中却不行。是否与某些缓存模式差异有关?
  • 我应该如何手动注意到我的列表其中一个元素的属性已更改(例如,论坛列表中论坛的位置属性)?

[编辑] 我读了这个主题,我觉得我的问题与我的论坛被一个不同的会话更新有关,而不是用于获取列表的会话。我理解对了吗?如果是,如何正确处理这种情况?

0 投票
2 回答
12843 浏览

java - JPA 更新双向关联

假设我们有以下实体:

可以理解的是,我们需要维护双方的关系如下:

到目前为止一切都很好。问题是我是否应该按如下方式在两侧应用合并,并且避免与级联进行第二次合并?

还是合并拥有方就足够了?这些合并也应该发生在事务或 EJB 中吗?或者在一个带有分离实体的简单控制器方法上做就足够了?

0 投票
1 回答
242 浏览

hibernate - 删除具有关系的对象 - 休眠

我在 Hibernate 关系和 Save-Update-Delete 方面遇到了一些问题。可以说我有以下内容:




问题是,我不能简单地删除一个主题,因为它有关系。我的意思是,当我删除一个主题时,所有具有该主题的课程也必须被删除。而且,如果删除了课程,则“属于”该课程的主题应该存在。成绩和课程也是如此。

我的解决方案(暂时)是:删除主题的方法,在删除主题本身之前调用删除具有该主题的所有课程的方法。

但我确信这不是正确的方法。我知道 CascadeType 应该可以解决这个问题,但我不知道该使用哪个,也不知道何时使用。

现在我们在谈论 Hibernate,所有的关系都应该是双向的吗?

0 投票
1 回答
57 浏览

map - Riak中的双向地图

我想在 Riak 中存储一个类似于双向地图的结构。我有两个带有反转键和值的存储桶。我想从第一个桶中删除第二个桶中的记录。据我了解,它不能用钩子完成。我怎样才能做到这一点?