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

java - Jackson - 具有双向关系的实体序列化(避免循环)

我有两个实体:

我知道@JsonBackReference@JsonManagedReference。它们很好,如果我要序列化Parent​​.

但我还需要传输实例,Child并且我希望parent填充该字段。

换句话说:

  1. 在序列化时Parent它应该有children,但它们的父字段可能是空的(可以通过使用 json 引用注释来解决)。
  2. 在它的序列化上Child应该有parent他们的children(但children不必parent填充。

有没有办法使用标准的杰克逊功能来解决它​​?

即跳过已经序列化的实体的序列化,而不是标记符合或不符合序列化条件的字段。

0 投票
2 回答
1226 浏览

java - 具有多个连接列的 OneToMany 关系

我有这个实体Friendship

每个友谊只有这个实体的一个实例/记录(不是 2 个),所以约翰是简的朋友的情况不会有任何问题,但反之亦然。条目也被规范化,因此 ID 最低的友谊成员是user1,而另一个成员是user2,这意味着我可以通过简单的唯一约束来防止重复条目。

为了获得某个用户的友谊,我执行了一个查询

WHERE user1 = :me OR user2 = :me.

是否可以将其映射到 的@OneToMany Set<Friendship>属性上User

Friendship有其他属性,所以这不简单@ManyToMany Set<User> friends

0 投票
1 回答
335 浏览

asp.net-mvc-3 - MVC3 可选双向关系代码优先

我所拥有的是类似的

我想要做的是从 BuildingUnit 到 BuildingUnitInsurance 的关系是可选的,但如果它确实存在,那么从 BuildingUnitInsurance 到 BuildingUnit 的关系必须存在。我用注释和流利的 api 尝试了一大堆东西,但我还没有真正得到任何地方。

这里的实际业务案例是有一个显示来自 BuildingUnit 类的信息的视图,然后在该页面上可以单击一个按钮并弹出一个模式以添加保险信息。单击该模式上的“添加保险”按钮会将保险信息发布到控制器,此时应该保存它,并且应该在 BuildingUnit 和 BuildingUnitInsurance 之间创建关系。对控制器代码的任何帮助也会很棒,因为我真的不知道我必须在那里做什么才能使这些关系发生。

0 投票
1 回答
537 浏览

spring - 双向多对多和DAO以HibernateException结束

我正在为学校开发一个基于 Web 的数据库前端。但是我有一个多对多关系的问题。当我注释掉它时,我的服务器启动没有问题。这是启动的堆栈跟踪。

这是多对多关系的第一个表

多对多关系的第二类。

最后是抛出异常的代码。

您可能需要访问 sourceforge.net 上的 docadmin

0 投票
1 回答
219 浏览

ruby-on-rails-3 - Rails 3:与自身具有多个双向关系的模型

我正在尝试在 Rails 3 中构建文本冒险游戏(是的,我知道这很愚蠢)。现在我有一个模型叫做 Room。每个房间需要与最多四个其他房间相关联。这种关系是双向的,因此任何两个相关的房间都是彼此的出口。例如,如果我要说:

@room2.south 会自动变成@room1。同样,如果我说:

@room2.west 也变为 nil。我想只使用模型关联来实现这一点,而不是在控制器中手动完成。这可能吗?

编辑

matzi 给出的第一个例子并不能完全按照我想要的方式工作。考虑以下:

这工作正常:

到现在为止还挺好。但:

此外:

看到这里的问题了吗?这并不是真正的双向。

解决了

事实证明,Matzi 的第一个解决方案毕竟是正确的。正如他所指出的,我在使用该解决方案时遇到的问题是储蓄问题。以下作品:

0 投票
1 回答
677 浏览

java - 杰克逊一对一序列化

我正在杰克逊寻找一种方法来允许根据根元素对关系进行序列化。例如,我的关系不是真正的父母/孩子。可以查询这两个实体。

JsonBackReference 使它在序列化为 json 时没有循环引用。但是,这也导致我不知道地址的公司。如果我要上市公司,那么地址会回来,一切都很好。但如果我列出地址,我希望看到公司被序列化。有没有办法做到这一点?

0 投票
3 回答
4799 浏览

php - Symfony2 Doctrine 多对多双向保存表单类型

我在使用表单保存实体时遇到问题。给我带来问题的关系是多对多双向的。

代理实体

代理列表实体

在代理类型中

在 AgentList 类型中

它仅在我使用 AgentType 时才有效。如果我使用 AgentListType 不要保存代理关系!同样,如果我:

一切正常!如果我:

什么都不保存...

0 投票
0 回答
677 浏览

jpa - 与@ElementCollection 的三元关系 - 左连接获取行为不端

JPA 2、Eclipse 链接 2.3.2

我试图用 two@ElementCollection而不是 two的三元关系建模,@OneToMany主要是这样我可以使联结对象 an@Embeddable而不是 @Entity 并避免嵌套对象需要 an @Id

例如

为了坚持,我将Assignment实例添加到Project实例中,参考右边的Employee. 这工作正常。

此外,我也可以通过就好了来引用Projects的列表。Employee

但是left join fetch,如果我使用类似的查询加载员工,即使我可以看到数据库查询实际上正在执行连接并且数据正在返回select e from Employee e left join fetch e.assignments,关联的分配/项目对象也不会被加载。

上述映射以某种方式无法left join fetch正确交互的原因是什么?

我用过left join fetch更简单的@ElementCollection映射没有问题,所以我想知道问题是什么。

谢谢!

0 投票
1 回答
172 浏览

hibernate - 如何在 Hibernate (3.2) 中设置双向关系?

我在 Hibernate 中设置双向关系时遇到问题(v 3.2.1.ga - 现在无法升级)。我有一个对象 TrainingSession,它包含许多 TrainingLink 对象。所以我有

和子实体……</p>

但是当我尝试创建一个父对象,添加一个子实体并保存时,我得到了一个错误。我还需要做什么才能正确设置它?

0 投票
1 回答
896 浏览

c# - Fluent Nhibernate:如何映射双向关系

我正在尝试映射以下内容,但不确定当前的 nHibernate/fluent nHibernate 是否有可能,因此任何建议将不胜感激。

基本上我有以下两个课程

有没有办法有效地映射上述关系?我的 Venue 表有一个指向 CurrentVenueDetails 属性的 VenueDetail 的外键,同时我的 VenueDetail 也有一个指向 Venue 属性的 Venue 表的外键。

干杯