问题标签 [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 回答
522 浏览

graph-databases - 为什么大多数图形数据库不支持双向边?

我必须选择一个图数据库系统,很惊讶主流的不支持这个功能?

为什么数据库系统如此不受欢迎?为什么那里的开发人员似乎没有要求它?应该有我不知道的原因。

谢谢你的帮助。

0 投票
1 回答
400 浏览

java - 两个对象的双向依赖

背景

我有以下内容:

类火扩展元素,

类木材扩展元素,

合成元素的类瓷砖。

Tile 类表示世界/屏幕/画布中的一个图块,并在其中具有一些图形和逻辑功能。它合成了一个 Element 对象,因为“世界”中的每个图块都是由某种物质 (=element) 组成的。

我想实现火蔓延的功能——当火元素“接触”木元素时,我希望木元素变成火。从逻辑上讲,这应该在火元素中完成,但是这样做,我无法更改给定的瓷砖元素(例如从木头到火)。

“世界”被初始化为由木元素组成的瓦片网格,除了一个具有应该传播的火元素的瓦片。

我试过的

我试过将元素链接在一起,这意味着每个元素都可以访问他的四个最近的邻居。这样,火就可以接近附近的一块木头。这并不能解决火接触木头时更改 Tile 元素类型的问题。

我尝试将整个功能移至 Tile 类。虽然它确实解决了问题,但我不喜欢它有两个原因:

  1. 从逻辑上讲,我希望火自主行动,这意味着是蔓延的,而不是瓷砖

  2. 结果,Tile 类有很多只与火相关的方法(例如 spread()),这需要我检查 - “这个 tile 是由火元素组成的吗?”,这是不好的做法。

代码示例

深入

  1. 瓦片的“网格”由瓦片的二维数组(逻辑部分)和由所有瓦片(视觉部分)组成的 JavaFx 窗格组成。

  2. 当它接触到相邻的瓷砖并将其从木头变成火时,火会“蔓延”。当燃烧(=变为火)给定阈值的木头时,例如燃烧 30 块木头后,火停止蔓延。从某种意义上说,火可以跟踪它消耗的木材。

提前致谢!

0 投票
3 回答
181 浏览

swift - Swift:将一组值 A 映射到 B 和 B 到 A

0 投票
1 回答
1352 浏览

orm - 未在数据库中插入外键值:无法在列中插入 Null

我正在将客户端应用程序从 Hibernate 迁移到 EclipseLink。但是在学生实体上调用persist方法时,它不会为外键插入值。数据库是oracle。地址和学生之间存在多对一的关系。

同样在生成的 SQL 中,外键列不存在。



*

*

0 投票
1 回答
275 浏览

hibernate - @OneToOne 关系中的两个问题

我正在使用 Hibernate 4.3.6.Final 和 WildFly 16。@OneToOne 关系有两个问题。

1.) 第一个问题:Unknown mappedBy in: at.home.digest.model.Expose.home, 引用属性unknown: at.home.digest.model.Home.expose"}}

这些是我的实体:

公开实体:

部署应用程序后,我收到:

2.) 第二个问题:首先,我通过从 Expose 实体中删除属性 mappedBy = "expose" 来克服第一个问题,即 Expose 实体现在看起来像:

现在我不再面临第一个问题了。但是,当保存主实体时,它不再引用相应的公开实体。相反,SQL 表 home 中的字段 expose_id 为空。:

这是我保存实体的源代码:

具有对应暴露实体的主实体被保存而不引用对应的暴露实体,即主表中的expose_id列为空。但是,相应的暴露实体与对主实体的引用一起保存,即暴露表中的列 home_id 正确地引用了主表中的相应行。

0 投票
0 回答
3315 浏览

postgresql - TypeORM双向复合主键关系

一个User可以有多个Profiles。在User我只想存储profileId. 在Profile我想存储的 id 中User

用户

轮廓

简而言之,我想创建两个外键。从User.profileIdProfile.id和从Profile.userIdUser.Id。这是我的问题的最佳实践解决方案吗?

0 投票
0 回答
27 浏览

jpa - JPA @ManyToOne,@OneToMany 双向关系

我正在研究双向映射。我使用 @OneToOne 和 @ManyToMany 注释映射了 Team 和 Member。

主要方法

结果:

成员:[]

我想知道为什么在上面的代码中没有将“成员”添加到“团队”的“成员字段”中。先感谢您。

0 投票
1 回答
24 浏览

hibernate - 从 Hibernate 中的 JoinTable 中检索所有记录

我是 Hibernate 的新手,我正在学习关系映射。我对双向 OneToMany 关系有疑问。我有两个类:人员和车辆。我使用@JoinTableAnnotation 创建了第三个 Table person_vehicle

问题:如何将 joinTable 中的所有数据放入 List。我想在表格视图中显示它们,但我的问题是 joinTable 的数据有什么类型?

我的解决方案:

0 投票
1 回答
93 浏览

java - Spring Boot:请求答案中的“循环”,当实体具有双向引用时(ManyToMany,FetchType.LAZY)

再会,

我正在研究 Spring Boot。这是我的项目 - https://github.com/Alex1182-St/java-spring-jpa-postgresql.git

我有 2 个实体:

AppUserEntity - https://github.com/Alex1182-St/java-spring-jpa-postgresql/blob/master/src/main/java/com/java/javaspringjpapostgresql/entities/AppUserEntity.java

和 RoleEntity - https://github.com/Alex1182-St/java-spring-jpa-postgresql/blob/master/src/main/java/com/java/javaspringjpapostgresql/entities/RoleEntity.java

实体具有双向引用(ManyToMany、FetchType.LAZY)。

我的问题是,当我的方法(AppUserController 中的方法 appUserById2WithPost)返回实体而不是 DTO 时,我会在答案中收到“循环”。 这是这个循环的样子 -

在 Idea 的控制台中,我有这样的错误 -尝试解决异常时失败 [org.springframework.http.converter.HttpMessageNotWritableException]

使用该方法的控制器 - https://github.com/Alex1182-St/java-spring-jpa-postgresql/blob/master/src/main/java/com/java/javaspringjpapostgresql/controllers/AppUserController.java

当然,我可以通过返回 DTO(如在方法 appUserByIdWithPost 中)或在实体中使用注释 @JsonIdentityInfo 来解决它。

但我担心项目中仍然会出现错误。我想解决它。但我找不到它的原因。有人能帮我吗?或者这种行为是否正常?

先感谢您。

0 投票
1 回答
238 浏览

java - 使用 org.mapstruct 框架的一对多关系映射

如何使用 org.mapstruct 框架映射一对多关系?

DTO 类:

域类 -

映射器类 -

现在,上面的映射器正在映射 ScheduledJob 和 ScheduledJobParams,但 ScheduledJobParams 有 ScheduledJob 的引用。

如何将参考 ScheduledJob 映射到 ScheduledJobParams?