用途
该技能用于在 Java 项目中应用 Spring Data JDBC 与 Java records 结合的开发规范。它面向需要审查或改进 Spring Data JDBC 代码的场景,依据参考规则和正反代码示例给出建议。
主要能力
技能覆盖以下内容:
- 使用 records 作为实体类(不可变、便于构造函数)
- 当 record 名称与表名不一致时使用 @Table 指定命名
- 使用 @Embedded 将值对象列内联到父行,而不建立单独的表
- 仓库模式(Repository pattern)
- 不可变更新:用静态工厂创建新行,用 with* 辅助方法进行更新
- save() 的 INSERT 与 UPDATE 语义由 @Id 是否可为 null 决定
- 聚合边界:每个聚合根一个仓库,根内部一对多用 Set,聚合之间用外键
- 使用 @Query 和命名参数编写自定义查询(不拼接用户输入)
- 事务管理(在服务上使用 @Transactional;适当场景使用 readOnly)
- 单次查询加载(避免 N+1)
使用方式
技能的工作流包括:
- 阅读参考并评估项目上下文:阅读 references/312-frameworks-spring-data-jdbc.md 并检查当前项目设置,然后再提出改动。
- 收集范围并确定目标改进:识别请求的结果、约束以及最小安全改动集。
- 应用与框架一致的改动:按照参考模式和项目约定实现或重构配置/代码。
- 运行验证并报告结果:执行适当的构建/测试,并总结改动了什么、验证了什么以及后续操作。
约束条件:
- 在应用任何 Spring Data JDBC 改动之前,确保项目可以编译。如果编译失败,立即停止。
- 强制要求:在应用任何改动之前运行 ./mvnw compile 或 mvn compile
- 安全要求:如果编译失败,立即停止
- 验证要求:在应用改进之后运行 ./mvnw clean verify 或 mvn clean verify
- 应用之前:阅读参考以了解详细规则和正反模式
- 边界情况:如果请求范围不明确,停止并在应用改动前提出澄清问题
- 边界情况:如果缺少必需的输入、文件或工具,报告缺少什么并询问是否继续提供设置指导
适用场景
- 审查 Java 代码中的 Spring Data JDBC 用法
- 在 Java 代码中应用 Spring Data JDBC 最佳实践
- 用 Java records 建模 Spring Data JDBC 聚合
- 审查 Spring Data JDBC 仓库和聚合边界
- 改进 Spring Data JDBC 中的乐观锁或领域事件
限制
技能本身未提供具体的收费、价格、平台或效果信息。使用前需确保项目可编译,并具备 Maven 工具链(./mvnw 或 mvn)。详细规则、示例和约束需查阅 references/312-frameworks-spring-data-jdbc.md。