lzh
b3d76ad00c
fix(video): 修复 CommonGBChannel 子类 @TableId 冲突与主键列映射
问题:
1. CommonGBChannel.gbId 的 @TableId 按驼峰转 snake_case 映射到 gb_id 列,
但实际所有相关表的主键列都是 id
2. StreamProxy/StreamPush 子类自己声明 @TableId(id),与父类 gbId 的
@TableId 同时扫描到 MyBatis-Plus 会报 "@TableId can't more than one"
3. DeviceChannel/PlatformChannel 没自己的 @TableId,运行时会用父类 gbId
作为主键查 gb_id 列 → Unknown column 运行时错误
修复:
- CommonGBChannel.gbId 的 @TableId 加 value="id" 显式映射到 id 列
保证 CommonGBChannelMapper 操作 video_common_gb_channel 时主键正确
- 4 个子类(StreamProxy/StreamPush/DeviceChannel/PlatformChannel)均
shadow 父类 gbId 字段:
@TableField(exist = false)
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private Long gbId;
让 MyBatis-Plus 反射扫描时只看到子类 gbId(标记 exist=false 跳过),
父类 @TableId 不参与扫描;Lombok 禁用子类 getter/setter,所有业务
代码的 setGbId/getGbId 继续走父类访问器,字段存储在父类
- DeviceChannel 和 PlatformChannel 给自己的 id 字段加 @TableId(IdType.AUTO)
显式声明各子表主键
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:40:13 +08:00
..
2026-04-22 14:40:13 +08:00
2026-04-21 10:15:14 +08:00