Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理与Spring数据JDBC的多对多关系中的元数据?_Java_Spring_Spring Data_Spring Data Jdbc - Fatal编程技术网

Java 如何处理与Spring数据JDBC的多对多关系中的元数据?

Java 如何处理与Spring数据JDBC的多对多关系中的元数据?,java,spring,spring-data,spring-data-jdbc,Java,Spring,Spring Data,Spring Data Jdbc,我有一个项目,bot\u用户s在game\u表s中玩。所以我有一个联接表。我还将buy_in(桌上玩家可用的点数)存储在该连接表中。我的SQL: 创建表bot\u用户( 用户id bigint主键, 自由点bigint检查(自由点>=0), 冻结点bigint检查(冻结点>=0) ); 创建游戏桌( 通道id bigint主键, 所有者bigint引用机器人用户(用户id), 博弈中的布尔值不为空 ); 创建桌面游戏\u桌面\u参与者( game_table_id bigint引用game_ta

我有一个项目,
bot\u用户
s在
game\u表
s中玩。所以我有一个联接表。我还将
buy_in
(桌上玩家可用的点数)存储在该连接表中。我的SQL:

创建表bot\u用户(
用户id bigint主键,
自由点bigint检查(自由点>=0),
冻结点bigint检查(冻结点>=0)
);
创建游戏桌(
通道id bigint主键,
所有者bigint引用机器人用户(用户id),
博弈中的布尔值不为空
);
创建桌面游戏\u桌面\u参与者(
game_table_id bigint引用game_tables(channel_id),
参与者id bigint引用机器人用户(用户id),
bigint中的buy_不为空,
主键(游戏表id、参与者id)
);

我现在的问题是:如何在Java实体中表示
buy_in
元数据?如果
buy_in
不存在,我只需要在
GameTable
实体中设置一个
ParticipantRef
,然后在那里设置一个可以处理ID的方法。但是我希望代码中也有可用的
buy_in
,那么我是否应该创建一个类似
ParticipantRef
的实体,其中包含
buy_in
?如果是的话,那么持久化将如何工作呢?

您提出的解决方案基本上就是这样做的。它不仅具有
BotUsers
userId
ParticipantRef
,还具有
buyIn
属性


由于您有一个对象通过
Set
GameTable
引用到
ParticipantRef
中,因此它将被视为GameTable聚合的一部分,并在您持久化
GameTable
实例时得到持久化。

您提出的解决方案基本上就是这样做的。它不仅具有
BotUsers
userId
ParticipantRef
,还具有
buyIn
属性


由于您有一个对象通过
Set
GameTable
引用到
participatref
它将被视为GameTable聚合的一部分,并在您持久化
GameTable
实例时得到持久化。

通常我将多对多关系拆分为一对多中的两个,如本文所示:通常情况下,我将多对多关系拆分为一对多中的两个,如本文所示: