java - 如何使用 Spring Data JDBC 处理多对多关系中的元数据?
问题描述
我有一个项目,bot_user
s 在哪里玩game_table
。所以我有一个连接表。我还将buy_in
(桌上玩家可用的点数)存储在该连接表中。我的 SQL:
CREATE TABLE bot_users (
user_id bigint PRIMARY KEY,
free_points bigint CHECK (free_points >= 0),
frozen_points bigint CHECK (frozen_points >= 0)
);
CREATE TABLE game_tables (
channel_id bigint PRIMARY KEY,
owner bigint REFERENCES bot_users(user_id),
in_game boolean NOT NULL
);
CREATE TABLE game_tables_participants (
game_table_id bigint REFERENCES game_tables(channel_id),
participant_id bigint REFERENCES bot_users(user_id),
buy_in bigint NOT NULL,
PRIMARY KEY (game_table_id, participant_id)
);
我现在的问题是:如何buy_in
在 Java 中的实体中表示元数据?如果buy_in
不存在,我会简单地在实体中ParticipantRef
拥有一个,然后在其中拥有适用于 ID 的方法。但我也希望在代码中可用,所以我应该创建一个包含? 如果是,那么坚持它如何工作?Set
GameTable
buy_in
ParticipantRef
buy_in
解决方案
您提出的解决方案几乎就是这样做的方法。ParticipantRef
它不仅具有 a userId
,BotUsers
而且还具有一个buyIn
属性。
GameTable
由于您有一个通过 aSet
到 the的对象引用,ParticipantRef
因此它将被视为 GameTable-Aggregate 的一部分,并在您持久化GameTable
实例时被持久化。
推荐阅读
- c++ - 在数组 C++ 中读取数组内的项
- python - 一旦 bs4 抓取了代码片段,我该如何清理我的代码内容?
- html - CSS 按钮对齐除最后一个以外的所有 div
- mongodb - Mongo Shell/Compass 无法连接到 mongodb 容器
- angular - 到服务器根目录的 Angular 路由
- tensorflow - 张量流中的自定义 f1_score 指标
- javascript - React - map.filter.map 的最有效方式
- python - 如何在 python sqlalchemy 中为 select() 提供通用模块?
- reactjs - 如何使电子窗口自动适应内容?
- docker - 为什么 docker-compose build 运行我的步骤两次?