diff --git a/README.md b/README.md index 2ce4470..ed487d7 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ > [🔥 Fenix](https://github.com/blinkfox/fenix)(菲尼克斯)是一个为了解决复杂动态 SQL (`JPQL`) 而生的 `Spring Data JPA` 扩展库,目的是辅助开发者更方便快捷的书写复杂、动态且易于维护的 SQL,支持 ActiveRecord 模式和多种查询方式的写法。 -[📖 使用文档](https://blinkfox.github.io/fenix) | [🍉 示例项目 (fenix-example)](https://github.com/blinkfox/fenix-example) +[📖 使用文档](https://blinkfox.github.io/fenix) | [✨ Intellij lIDEA 插件](https://plugins.jetbrains.com/plugin/17158-fenix) | [🍉 示例项目 (fenix-example)](https://github.com/blinkfox/fenix-example) ## 💎 一、特性 -- 简单、轻量级、无副作用的集成和使用,jar 包仅 `214 KB`; +- 简单、轻量级、无副作用的集成和使用,jar 包仅 `215 KB`; - 作为 JPA 的扩展和增强,兼容 Spring Data JPA 原有功能和各种特性; - 提供了 `XML`、Java 链式 `API` 和动态条件注解等四种方式来书写动态 SQL; - 支持 `ActiveRecord` 模式; @@ -19,7 +19,7 @@ - 可以采用动态条件注解和Java 链式 `API` 来书写出动态的 `Specification`; - 增强了更快速高效的 JPA 批量“增删改”的支持,支持非 `null` 属性的增量更新; - 支持**雪花算法**和 `NanoId` 的主键 ID 生成策略; -- SQL 执行结果可返回任意自定义的实体对象,支持多种结果转换方式,比使用 JPA 自身的投影方式更加简单和自然; +- SQL 执行结果可返回任意自定义的实体对象,支持多种结果转换方式,比使用 JPA 自身的投影方式更加简单; - 具有可扩展性,如:可自定义 `XML` 语义标签和对应的标签处理器来生成自定义逻辑的 SQL 片段和参数; ## 🏖️️ 二、支持场景 @@ -385,10 +385,18 @@ public void queryBlogsWithAnnotaion() { } ``` -## 📝 五、开源许可证 +## 🙋 五、其他贡献者 :id=contributor -本 `Fenix` 的 Spring Data JPA 扩展库遵守 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 许可证。 +感谢如下贡献者,没有他们, `Fenix` 不会如此完美。 + +- [@pengten](https://github.com/pengten) +- [@jgaybjone](https://github.com/jgaybjone) +- [@imhansai](https://github.com/imhansai) ## 🙏 六、鸣谢 感谢 [JetBrains 公司](https://www.jetbrains.com/?from=fenix) 为本开源项目提供的免费正版 Intellij IDEA 的 License 支持。 + +## 📝 七、开源许可证 + +本 `Fenix` 的 Spring Data JPA 扩展库遵守 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 许可证。 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index fdcf5c9..18fc805 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,94 +1,95 @@ # 🍹 版本更新记录 :id=title -## 🏖️ v2.7.0 新增 ActiveRecord 模式和多种结果转换策略 🆕 (2022-03-30) :id=v270 +### 🏖️ v2.7.0 新增 ActiveRecord 模式和多种结果转换策略 🆕 (2022-03-31) :id=v270 - 新增了 ActiveRecord 模式,简单场景的“**增删改查**”或**动态查询**更加方便、优雅; - 新增了多种可自定义的查询结果列转换为对象实体的转换策略,包括"**基于 as 别名转换**"(默认)、"**下换线转驼峰**"、"**去除前缀的下划线转驼峰**"和"**基于 Column 注解转换**"等; - 新增了 `@QueryFenix` 注解中的 `resultType` 的结果实体类型属性,跟 XML 中的 `resultType` 同义,后续推荐使用注解标注结果类型,重构代码时,能更好的利用上的 Java 的静态编译检查。 - 新增了 `NanoId` 的主键生成策略和 Java API 调用方式; +- 新增和改进了部分文档中的内容,添加了 `IDEA` 插件地址和其他贡献者的列表; -## 🏔️ v2.6.1 修复启动 Banner 版本号不对的小问题 (2021-12-10) :id=v261 +### 🏔️ v2.6.1 修复启动 Banner 版本号不对的小问题 (2021-12-10) :id=v261 - 修复了 Fenix 启动 Banner 中版本号不对的小问题; -## 🎣 v2.6.0 支持 Spring Data JPA 2.6.0 版本 (2021-11-21) :id=v260 +### 🎣 v2.6.0 支持 Spring Data JPA 2.6.0 版本 (2021-11-21) :id=v260 - 支持最新的 Spring Data JPA 版本(`v2.6.0`),同时也能兼容之前的 Spring Data JPA 版本; -## 🎿 v2.5.0 新增了 trimWhere 标签 (2021-05-07) :id=v250 +### 🎿 v2.5.0 新增了 trimWhere 标签 (2021-05-07) :id=v250 - 新增了 `trimWhere` 标签,用于完全替代之前的 `where` 标签,用于修复它的已知 [bug](https://github.com/blinkfox/fenix/issues/43),以前的 `where` 标签将继续保留但不再推荐使用; -## ⛸️ v2.4.2 小 bug 修复版本 (2021-02-03) :id=v242 +### ⛸️ v2.4.2 小 bug 修复版本 (2021-02-03) :id=v242 - 修复了使用 `Pageable.unpaged()` 时的异常; -## ⛳ v2.4.1 新增了 debug 模式和 bug 修复 (2021-01-02) :id=v241 +### ⛳ v2.4.1 新增了 debug 模式和 bug 修复 (2021-01-02) :id=v241 - 新增了 `debug` 模式,开启之后,可以在不重启服务的情况下,实时读取和解析 XML 文件中的 SQL; - 修复 `` 标签中在混合使用了逻辑控制语法和 XML 标签语法时,去除 `AND` 前缀的一些 bug; - 升级了 `mvel` 的依赖到最新小版本; -## 🥊 v2.4.0 增强 JPA 的增删改功能 (2020-12-09) :id=v240 +### 🥊 v2.4.0 增强 JPA 的增删改功能 (2020-12-09) :id=v240 - 新增了更快速高效的 JPA 批量“增删改”的支持; - 新增了增量更新的功能,即更新时只更新实体类中属性值不为 `null` 的字段; - 新增了三种主键 ID 生成策略类; - 修改或升级了相关依赖包的版本,如:去除了 `dom4j` 的显示依赖,因为 JPA Hibernate 中已经传递依赖了它; -## 🏓 v2.3.6 小功能改进版本 (2020-08-27) :id=v236 +### 🏓 v2.3.6 小功能改进版本 (2020-08-27) :id=v236 - 新增了 `@EnableFenix` 注解中更多的配置信息,与 `@EnableJpaRepositories` 注解相对应; - 修改了求 `COUNT` 的 SQL 不支持 `DISTINCT` 的问题; -## 🎳 v2.3.5 修复了在老版本 JPA 中某些情况下的 bug (2020-07-31) :id=v235 +### 🎳 v2.3.5 修复了在老版本 JPA 中某些情况下的 bug (2020-07-31) :id=v235 - 修复了在老版本 JPA 中,某些情况下出现 Javaassist 的 `ClassNotFoundException` 的问题; -## 🥏 v2.3.4 升级了相关依赖包的版本 (2020-07-26) :id=v234 +### 🥏 v2.3.4 升级了相关依赖包的版本 (2020-07-26) :id=v234 - 升级了相关依赖包的版本,如:`dom4j`、`mvel` 等; -## 🏈 v2.3.3 修复多线程下同一个接口方法的线程安全问题(强烈推荐升级) (2020-07-03) :id=v233 +### 🏈 v2.3.3 修复多线程下同一个接口方法的线程安全问题(强烈推荐升级) (2020-07-03) :id=v233 - 修复了在多线程情况下执行同一个 `repository` 接口方法时,可能出现参数混淆的线程安全问题; -## 🏀 v2.3.2 修复某些情况下 JDBC 连接未释放的问题(强烈推荐升级) (2020-05-28) :id=v232 +### 🏀 v2.3.2 修复某些情况下 JDBC 连接未释放的问题(强烈推荐升级) (2020-05-28) :id=v232 - 修复了在异步多线程情况下,返回自定义实体 Bean 类型时,JDBC 连接未释放的问题,老版本可以使用 `@Transactional` 注解解决; -## 🥎 v2.3.1 兼容支持最新 v2.3.0 版本的 Spring Data JPA (2020-05-18) :id=v231 +### 🥎 v2.3.1 兼容支持最新 v2.3.0 版本的 Spring Data JPA (2020-05-18) :id=v231 - 支持最新的 Spring Data JPA 版本(`v2.3.0`),同时也能兼容之前的 Spring Data JPA 版本; -## ⚽ v2.3.0 新增了基于 JPQL 方式时自定义命名参数名称的相关 API 和属性 (2020-05-09) :id=v230 +### ⚽ v2.3.0 新增了基于 JPQL 方式时自定义命名参数名称的相关 API 和属性 (2020-05-09) :id=v230 - 新增了基于 JPQL 的 XML 方式中的多个 XML 标签中,可以自定义命名参数名称的 `name` 属性; - 新增了基于 JPQL 的 Java API 方式中可以自定义命名参数名称的 `name` 参数相关的 API 方法; -## ⚾ v2.2.0 新增了基于 Specification 的动态注解和 Java 链式 API (2020-02-02) :id=v220 +### ⚾ v2.2.0 新增了基于 Specification 的动态注解和 Java 链式 API (2020-02-02) :id=v220 - 新增了基于 `Specification` 的动态条件注解来动态查询数据; - 新增了基于 `Specification` 的 Java 链式 API 来动态查询数据; - 新增了 `@EnableFenix` 注解来配置 JPA 可以使用 Fenix 的相关 API; -## 🏅 v2.1.0 新增 标签和对应的 Java API (2019-11-21) :id=v210 +### 🏅 v2.1.0 新增 标签和对应的 Java API (2019-11-21) :id=v210 - 新增了 `` 标签和动态 `where` 的 Java API,用来消除在全动态 SQL 中场景中,`WHERE` 关键字后的 `AND` 或者 `OR` 关键字; -## 🏆 v2.0.0 支持 Spring Boot 的 2.2.0.RELEASE 版本 (2019-10-10) :id=v200 +### 🏆 v2.0.0 支持 Spring Boot 的 2.2.0.RELEASE 版本 (2019-10-10) :id=v200 - 支持 Spring Boot 和 Spring Data JPA 的 `2.2.0.RELEASE`及以上的版本,同时也兼容之前的版本; -## 🎖️ v1.1.1 求分页 count 小调整 (2019-10-10) :id=v111 +### 🎖️ v1.1.1 求分页 count 小调整 (2019-10-10) :id=v111 - **修改**了默认求总记录数 `count(*)` 时的 SQL 为 `count(*) as count`,即增加了 `as` 列; -## 🎗️ v1.1.0 新增返回任意实体对象或集合 (2019-10-10) :id=v110 +### 🎗️ v1.1.0 新增返回任意实体对象或集合 (2019-10-10) :id=v110 - **新增**了**返回任意实体对象**或集合的功能,相比使用投影的方式更为简单和自然; -## 🤹‍♂️ v1.0.1 bug 修复及小功能调整 (2019-09-01) :id=v101 +### 🤹‍♂️ v1.0.1 bug 修复及小功能调整 (2019-09-01) :id=v101 - **新增**了可以使用 `spring.jpa.show-sql` 的配置来作为是否打印 SQL 信息的依据之一; - **新增**了部分类的单元测试,提高了单元测试覆盖率; @@ -96,6 +97,6 @@ - **修复**了 Spring Boot web 项目打成 `jar` 包时读取不到 Fenix `XML` 文件的问题; - **删除**了 Fenix `debug` 模式的功能; -## 🎪 v1.0.0 第一个里程碑正式版 (2019-08-19) :id=v100 +### 🎪 v1.0.0 第一个里程碑正式版 (2019-08-19) :id=v100 - **新增**了 `Fenix` JPA 扩展库的核心功能; diff --git a/docs/README.md b/docs/README.md index d1b5a56..caa5277 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,14 +2,11 @@ > [🔥 Fenix](https://github.com/blinkfox/fenix)(菲尼克斯)是一个为了解决复杂动态 SQL (`JPQL`) 而生的 `Spring Data JPA` 扩展库,目的是辅助开发者更方便快捷的书写复杂、动态且易于维护的 SQL,支持 ActiveRecord 模式和多种查询方式的写法。 -**🏕️ 使用示例**: - -- [⛱️ 示例项目 (fenix-example)](https://github.com/blinkfox/fenix-example) -- [🏝️ Fenix 使用的单元测试](https://github.com/blinkfox/fenix/tree/develop/src/test/java/com/blinkfox/fenix/repository) +[✨ Intellij IDEA 插件](https://plugins.jetbrains.com/plugin/17158-fenix) | [⛱️ 示例项目 (fenix-example)](https://github.com/blinkfox/fenix-example) | [🏝️ Fenix 使用的单元测试](https://github.com/blinkfox/fenix/tree/develop/src/test/java/com/blinkfox/fenix/repository) ## 💎 特性 :id=features -- 简单、轻量级、无副作用的集成和使用,jar 包仅 `214 KB`; +- 简单、轻量级、无副作用的集成和使用,jar 包仅 `215 KB`; - 作为 JPA 的扩展和增强,兼容 Spring Data JPA 原有功能和各种特性; - 提供了 `XML`、Java 链式 `API` 和动态条件注解等四种方式来书写动态 SQL; - 支持 `ActiveRecord` 模式; @@ -18,7 +15,7 @@ - 可以采用动态条件注解和Java 链式 `API` 来书写出动态的 `Specification`; - 增强了更快速高效的 JPA 批量“增删改”的支持,支持非 `null` 属性的增量更新; - 支持**雪花算法**和 `NanoId` 的主键 ID 生成策略; -- SQL 执行结果可返回任意自定义的实体对象,支持多种结果转换方式,比使用 JPA 自身的投影方式更加简单和自然; +- SQL 执行结果可返回任意自定义的实体对象,支持多种结果转换方式,比使用 JPA 自身的投影方式更加简单; - 具有可扩展性,如:可自定义 `XML` 语义标签和对应的标签处理器来生成自定义逻辑的 SQL 片段和参数; ## 🎁 初衷 :id=original-intention @@ -33,10 +30,18 @@ > **💡 注**:本 `Fenix` 扩展库开发的核心思想来源于我几年前写的动态 SQL 拼接库 [Zealot](https://github.com/blinkfox/zealot)。如果你熟悉星际争霸的话,大概能理解其中的关系。 -## 📝 开源许可证 :id=license +## 🙋 其他贡献者 :id=contributor -本 `Fenix` 的 Spring Data JPA 扩展库遵守 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 许可证。 +感谢如下贡献者,没有他们, `Fenix` 不会如此完美。 + +- [@pengten](https://github.com/pengten) +- [@jgaybjone](https://github.com/jgaybjone) +- [@imhansai](https://github.com/imhansai) ## 🙏 鸣谢 :id=thanks 感谢 [JetBrains 公司](https://www.jetbrains.com/?from=fenix) 为本开源项目提供的免费正版 Intellij IDEA 的 License 支持。 + +## 📝 开源许可证 :id=license + +本 `Fenix` 的 Spring Data JPA 扩展库遵守 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 许可证。 diff --git a/docs/_coverpage.md b/docs/_coverpage.md index 06270b4..1e9290c 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -4,11 +4,12 @@ > 为解决复杂动态 SQL 而生的 Spring Data JPA 扩展库 -- 🌱 简单、可扩展、轻量级 (~214 KB jar) +- 🌱 简单、可扩展、轻量级 (~215 KB jar) - 🪴 支持 ActiveRecord 模式 - 🌴 可返回任意自定义的实体对象 - 🌿 比 MyBatis 更加强大的动态 SQL 能力 - 🌾 支持“增量更新”和更快速的“批量增删改”操作 -[🐱 GitHub](https://github.com/blinkfox/fenix/) -[👇 开始阅读](README) +[🐱 源码仓库](https://github.com/blinkfox/fenix/) +[✨ IDEA 插件](https://plugins.jetbrains.com/plugin/17158-fenix) +[👇 开始阅读](README) \ No newline at end of file