blinkfox / fenix

This is an extension library to the Spring Data JPA complex or dynamic SQL query. 这是一个比 MyBatis 更加强大的 Spring Data JPA 扩展库,为解决复杂动态 JPQL (或 SQL) 而生。https://blinkfox.github.io/fenix
https://blinkfox.github.io/fenix
Apache License 2.0
345 stars 72 forks source link

新增通用类型转换,在自定义的类型转换器中新增 @JpaDto 或自定义的注解即可, 在配置文件中进行指定 #46

Closed hexian closed 3 years ago

hexian commented 3 years ago

新增通用类型转换器可以与 fenix 标签的 resultType 共存

在 application.yml 中配置: fenix: dtoAnnotation: com.blinkfox.fenix.jpa.annotation.JpaDto # 指定自定义注解 dtoBasePackage: com.blinkfox.fenix.dto. # 指定DTO的base包

测试方法:com.blinkfox.fenix.repository.UserRepositoryTest#queryUserDtoListByName

blinkfox commented 3 years ago

你改动的较多,不敢合并,我后续有时间看看。

pengten commented 3 years ago

貌似有部分类和方法缺少注释...

hexian commented 3 years ago

你改动的较多,不敢合并,我后续有时间看看。

因为测试代码和功能代码都提交了。

修改的类: src/main/java/com/blinkfox/fenix/config/FenixConfig.java 新增 dtoBasePackage 和 dtoAnnotation 字段, 新增getter/setter方法 ​ src/main/java/com/blinkfox/fenix/config/FenixConfigManager.java 新增方法 scanDtoAndRegisterConverts 及其调用 ​ ​src/main/java/com/blinkfox/fenix/jpa/FenixJpaQuery.java

新增的类: ​src/main/java/com/blinkfox/fenix/helper/ClassScannerHelper.java 抄的spring自带的类扫描工具 ​src/main/java/com/blinkfox/fenix/helper/FenixScanDtoHelper.java 简单包装 ClassScannerHelper ​src/main/java/com/blinkfox/fenix/jpa/annotation/JpaDto.java 默认自定义注解 @JpaDto 可以在配置文件中指定自定义注解进行替换 ​src/main/java/com/blinkfox/fenix/jpa/convert/GenericConvert.java Spring的类型转换工具,实现Map到有@JpaDto注解的类的类型转换(基于内省, 不是反射字段)

测试类: ​src/test/java/com/blinkfox/fenix/dto/UserDto.java ​src/test/java/com/blinkfox/fenix/repository/UserRepository.java 新增方法 queryUserDtoListByName ​src/test/java/com/blinkfox/fenix/repository/UserRepositoryTest.java 新增测试方法 queryUserDtoListByName() ​src/test/resources/my/dir/xml/other-dir.xml 新增测试标签 <fenix id="queryUserDtoListByName" removeIfExist="1 = 1 AND " >

hexian commented 3 years ago

貌似有部分类和方法缺少注释...

哦哦, 主要扩展点是:DefaultConversionService.getSharedInstance(); 这个类型转换器 构造器 共享类型转换器

blinkfox commented 3 years ago

先合并了,后续我会仔细看看,有些不合适的,可能会改一些代码

hexian commented 3 years ago

先合并了,后续我会仔细看看,有些不合适的,可能会改一些代码

好的。