mcpField
4
412-frameworks-quarkus-panache

412-frameworks-quarkus-panache

github.com/jabrena开发456334 次安装1 天前更新
代码仓库

关于 412-frameworks-quarkus-panache

用于在 Quarkus 持久化代码中应用 Hibernate ORM 与 Panache 模式的技能,指导实体和仓库设计、安全查询、投影、分页及事务处理,并要求修改前编译、修改后验证。

主要功能

  1. 01Active record 与仓库模式
  2. 02参数化 JPQL 和 Panache 查询
  3. 03DTO 投影与分页
  4. 04使用 JOIN FETCH 避免 N+1 查询
  5. 05使用 @Version 实现乐观锁
  6. 06修改前编译及修改后验证

适用场景

  1. 01审查 Panache 实体和仓库
  2. 02改进查询安全性与复用性
  3. 03添加投影或分页查询
  4. 04处理 N+1 问题或乐观锁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 412-frameworks-quarkus-panache

安装后在 Claude Code 中输入/412-frameworks-quarkus-panache确认已加载。

附带文件references/412-frameworks-quarkus-panache.md

详细介绍

使用 Panache 的 Hibernate ORM

在 Quarkus 中应用 Hibernate ORM 的 Panache 模式。

此技能涵盖哪些内容?

  • Active Record(PanacheEntity)与 PanacheRepository:何时使用各自的模式
  • 参数化 JPQL / Panache 查询:位置参数(?1)和命名参数(:param),避免不安全的字符串拼接
  • 在实体上使用 @NamedQuery 编写可复用、经过构建时验证的查询
  • 使用 project(Class) 进行 DTO 投影,避免暴露受管理的实体
  • 使用 Page.of(pageIndex, pageSize) 分页,并使用 query.count() 计数
  • 在 JPQL 查询中使用 JOIN FETCH,避免 N+1 问题
  • 使用 @Version 实现乐观锁,并处理 OptimisticLockException
  • 使用 @Transactional 标注应用服务
  • 在 @QuarkusTest 测试中使用 @TestTransaction 自动回滚
  • 在 REST 边界映射实体与暴露 DTO
  • 通过 Hibernate 执行原生查询,在同一事务中使用可控 SQL;在边界处绕过 Hibernate 时,可与 @411 配合使用 JDBC

范围: 根据参考规则以及正反代码示例应用建议。

约束

持久化变更前先编译;完成后验证。

  • MANDATORY:应用任何变更前运行 ./mvnw compile 或 mvn compile
  • PREREQUISITE:应用 Panache 改进前,项目必须能够编译
  • SAFETY:如果编译失败,立即停止
  • BLOCKING CONDITION:必须由用户解决编译错误后才能继续
  • VERIFY:应用改进后运行 ./mvnw clean verify 或 mvn clean verify
  • BEFORE APPLYING:阅读参考文档,了解详细规则和示例

何时使用此技能

  • 审查 Quarkus 中的 Panache 实体或仓库
  • 使用 Panache 改进 Hibernate ORM 数据访问
  • 为 Panache 查询添加 DTO 投影、JOIN FETCH、分页或乐观锁
  • 修复 N+1 查询问题,或在 Quarkus Panache 中添加 @Version 并发控制
  • 改进 Panache Active Record 与 Repository 的设计

工作流

  1. 阅读参考文档并评估项目上下文

阅读 references/412-frameworks-quarkus-panache.md,并检查当前项目设置,再提出变更建议。

  1. 明确范围并确定目标改进

确定所需结果、约束条件,以及要应用的最小安全变更集。

  1. 应用符合框架规范的变更

遵循参考模式和项目惯例,实现或重构配置与代码。

  1. 运行验证并报告结果

运行适当的构建和测试,并总结变更内容、验证情况以及后续操作。

参考文档

详细指南、示例和约束请参阅 references/412-frameworks-quarkus-panache.md。

评论

支持 Markdown