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
实例时得到持久化。通常我将多对多关系拆分为一对多中的两个,如本文所示:通常情况下,我将多对多关系拆分为一对多中的两个,如本文所示: