![]() |
1
3
@解析器。。。对我来说,你的问题在于对数据模型的误解;引用您的话:
这意味着“游戏”是一个强实体,不应该有对玩家的引用(即外键)(即“游戏”表不应该包含以下列:crosses_player_id,noughts_player_id)。。。这也意味着“玩家”是一个弱实体,只存在于“游戏”的上下文中(所以,这里可以有一个外来的游戏列)。。。 假设所有这些,你的模型和映射都会变得更清晰,例如:
|
![]() |
2
0
玩家游戏中的OneToOne已经在这些实体之间创建了你想要的关系。使用游戏主键上的ManyToOne With Joining,您将能够看到玩家正在参加什么游戏(从数据上的玩家视图)。 根据该数据逻辑,最多两名玩家可以在数据层上参与游戏。然而,你仍然可以创建一个玩家,给他一个他不玩的游戏。
我建议你创建一个类似的方法
一般来说,我建议你过度思考你的数据模式,也许可以像@Carlitos Way建议的那样做 |
![]() |
3
0
在你的模型中,你希望你的游戏和你的玩家之间有1-1的关系。但是两个玩家将共享一个游戏,因此单个游戏id可以从玩家表中多次引用,但单个玩家只能从游戏表中引用一次。
你犯的一个错误是使用
你的游戏玩家关系是由他们的对齐来定义的。事实上,你的玩家实体似乎定义了用户和游戏之间的关系。
我为您的用例提供的解决方案是使用
然后,如果你想要双向关系,你可以使用mappedBy属性。 在玩家表中:
或者在游戏桌上:
|
![]() |
AntonBoarf · 休眠/春天:悲观主义者vs乐观主义者锁定? 6 年前 |
![]() |
Sinan Samet · Hibernate给出无法确定类型错误 6 年前 |
|
Carlos Chávez · Tomcat/Hibernate配置 6 年前 |
![]() |
Seric · 更改Naturald参数名称后出错 6 年前 |
![]() |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 6 年前 |
![]() |
Jovan0042 · 在H2中持久化多个实体引发异常 6 年前 |