已开启
【实习#28】新增 SpringDataJPA 配合 MySQL JDBC 连接 openGauss B 库示例与自测 #111
wsrym创建于 9 天前
【实习#28】新增 SpringDataJPA 配合 MySQL JDBC 连接 openGauss B 库示例与自测 #111
已开启
合并受阻
9 天前 关联了issue:openGauss集成融合Elasticsearch,[开源实习]: openGauss B库B协议适配MySQL Java框架 SpringDataJPA
9 天前 将ywzq1161327784,chenxiaobin19,totaj,congzhou2603,shenzheng4,chendong76,dodders,muyulinzhong,shirley_zhengx,quemingjian,jemappellehc,wofanzheng,wlff234,libiao2024,hwworkholic,CarrotGo,superlchf设为审查人
9 天前 将ywzq1161327784,chenxiaobin19,totaj,congzhou2603,shenzheng4,chendong76,dodders,muyulinzhong,shirley_zhengx,quemingjian,jemappellehc,wofanzheng,wlff234,libiao2024,hwworkholic,CarrotGo,superlchf设为审查人
9 天前 添加了label:sig/Infra
opengauss_bot
9 天前 评论:
9 天前 评论:
Welcome To openGauss Community
Hey @lele-2026 , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
Contact Guide
If you have any questions, please contact the SIG: Infra ,
and any of the maintainers: @CarrotGo, @chendong76, @chenxiaobin19, @congzhou2603, @dodders, @hwworkholic, @jemappellehc, @libiao2024, @muyulinzhong, @quemingjian, @shenzheng4, @shirley_zhengx, @superlchf, @totaj, @wlff234, @wofanzheng, @ywzq1161327784 ,
and any of the committers: @ailoooong, @gzbang, @libiao2024, @zhangxubo .


此处折叠了47条消息 查看更多
3 天前 删除了label:opengauss-cla/yes
3 天前 删除了label:stat/needs-squash
opengauss_bot
3 天前 评论:
3 天前 评论:
3 天前 添加了label:opengauss-cla/yes
opengauss_bot
3 天前 评论:
3 天前 评论:
【标题】新增 SpringDataJPA 配合 MySQL JDBC 连接 openGauss B 库示例与自测
【实现内容】:
新增 springdatajpa-connect-opengauss-b/ 示例工程(Spring Boot 3.5.16 + Spring Data JPA(Hibernate 6.6)+ MySQL Connector/J 经 dolphin MySQL 协议连接 openGauss B 兼容库,端口
3308):
【根因分析】:
官方开发指导文档尚无基于 SpringDataJPA 连接 openGauss B 库的示例;ORM 层(方言、元数据探测、查询渲染)是与驱动不同维度的兼容性风险区,需要实测验证。实测发现并定位 6 个问题:LIKE模糊查询 escape 转义语义差异(Hibernate 6.6 默认给 LIKE 追加 escape '\',B 模式按标准 SQL 视 '\' 为 2 字符 → invalid escape string;与社区已记录的已知差异同源,参见 Plugin 仓issue #504,规避:JPQL 显式 escape '!')、FINDING E(ddl-auto=update 静默失效,根因默认配置下 information_schema表名大小写敏感,视图存在、小写可查,dolphin.lower_case_table_names=1 持久化后恢复)、FINDING F/G/H/I(协议命令专项,与 #27 报告同源)。转义差异与 FINDING E/F/G均与驱动版本无关,根源在服务端;FINDING H/I 触发条件依赖驱动版本。
【实现方案】:
以 Boot BOM 默认驱动建立冒烟基线,再针对 ORM 高风险环节(方言 / 元数据 / 主键 / 查询渲染)设计专项用例;对转义语义差异先用文档基准驱动 8.0.28 复现排除驱动因素,再下钻到 SQL 层用gsql 取证定位服务端语义差异,最后以 7 档驱动矩阵确认问题归属。K1 用例将当前已知的差异行为写成回归断言:服务端行为调整后测试自动失败,提醒移除 workaround 并更新文档。
【关联需求或issue】:
https://gitcode.com/opengauss/opensource-intership/issues/28
【开发自验报告】:
请附上自验结果(内容或者截图)
自测结论:Boot BOM 默认档(mysql-connector-j 9.7.0)19/19 用例全部通过(BUILD SUCCESS,"通过" = 与断言一致,含 K1 复现转义语义差异、D1 复现 FINDING E 的回归断言);7档驱动矩阵共 133 例次:核心链路(类型映射、主键回填、分页、批量、事务回滚)逐项一致、与驱动版本无关;协议命令专项三档行为:9.7.0/26.7.0 档 19/19 全绿、8.0.33~8.4.0 档18/19(唯一失败为 FINDING H 已知缺陷断言)、8.0.28 档基础类 10/10 通过、协议命令暴露 FINDING I(COM_STMT_RESET 崩溃服务端进程)。规避:JPQL 显式 escape '!';gsql 取证见报告 7.2节。详见工程内 docs/基于SpringDataJPA框架的openGauss数据库测试.md。
是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
否。examples 仓为示例与自测代码,不纳入服务端 fastcheck 回归用例体系。
是否涉及资料修改,如是,在docs仓库补充资料
是。基于 SpringDataJPA 开发指导文档(springdatajpa_development.md)已单独提 PR 至 docs 仓。
是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
否。示例工程不修改数据库对象或执行态。
是否考虑在线扩容等扩展场景
否。
是否考虑异常场景/并发场景/前向兼容/性能场景
部分。已覆盖已知差异回归断言(K1 复现转义语义差异、K2 验证 escape '!' workaround)与 7 档驱动前向兼容;并发、性能与故障注入场景未覆盖。
是否对其他模块产生影响
否。独立示例工程,不影响其他模块。
是否需要回合补丁版本(5.0、6.0),涉及(结果错误|coredump|性能劣化|内存泄露|集群异常)相关修复请排查回合补丁分支
否。本 PR 为示例与自测代码,无服务端代码修改,不涉及上述缺陷修复。
针对Plugin仓dolphin插件,新增/修改的代码是否已使用 DOLPHIN 宏进行控制,方便后续回合openGauss-server仓代码
否。本 PR 不含 dolphin 插件代码修改。
【当前PR是否有AI参与】:
[ ] 否
[x] 是
__1. AI Agent 平台: Claude Code 2.1.251
__2. AI 模型: DeepSeek-V4-Pro
__3. Prompt上下文: Adapt Spring Data JPA with MySQL JDBC to openGauss B-mode via dolphin MySQL protocol; deliver test code, mind map, self-test report and docs guide for
internship issue #28
【其他说明】:
实测环境 openGauss 7.0.0-RC3(源码编译,commit fe6f6e4b),与任务要求的 7.0.0-LTS 在 MySQL 协议兼容行为上应一致,正式版发布后建议用同一套用例回归。