eqv2升级v3🔥
2025/5/14大约 2 分钟
eqv2版本已经将主要核心功能全部开发完毕,用户如果不想升级可以继续使用v2,且bug依然会修复
为了框架更好更稳定的发展,与源码的阅读和可维护性,作者打算对v2版本大刀阔斧的进行修改(之前是以功能作为第一优先进行开发毕竟作者自己也要用),一方面是因为历史原因导致easy-query的api4j模块和api4kt模块占用大量类目导致entity下不得不取其他类名,
 另一方面过多的api选择让不但让作者精力分散并且也要用户有更多的误解和选择困难,所以v2升级到v3有如下breakchange
BreakChange
配置项默认值变动
| 配置项 | v2默认值 | v3默认值 | 
|---|---|---|
| propertyMode | FIRST_LOWER | SAME_AS_ENTITY | 
| mappingStrategy | COLUMN_ONLY | PROPERTY_FIRST | 
| sharding | - | false | 
3.0.3破坏性变更
新增属性
| 配置项 | v2默认值 | v3默认值 | 
|---|---|---|
| sharding | - | false | 
EntityExpressionExecutor默认实现DefaultEntityExpressionExecutor不再支持分片,如果需要实现分片请替换实现为ShardingEntityExpressionExecutor
 并且优化DefaultEntityExpressionExecutor内部逻辑
默认移除keepNativeStyle
框架默认使用keepStyle将原生sql片段单引号变成双单引号如果不需要可以使用messageFormat函数来禁用
移除api4j
v3版本将重心放到entity模式,顾User::getName这种方式不再推荐,所以api4j包直接移除,那么如果用户想用api4j并且想升级到v3怎么办,用户可以独立拉取v2源码下的sql-api4j然后单独引入v3的sql-core包做相关适配
移除api4kt
原因同上
移除过期api
移除带有@Deprecated标记的过期api,用户可以根据源码提示迁移到新版本api后再升级
GroupKeys.TABLE1.....NQueryStrategy、ProxyEntityOnDuplicateKeyUpdate、SQLOnDuplicateKeyIgnore接口queryLargeColumn方法@Column下的large属性exists改成table.expression().existsnotExists改成table.expression().notExistsvalueOrDefault、fetchBy、selectSum、selectAvg、selectMax、selectMin、trimStart、trimEnd、plus+TimeUnit、duration+DateTimeDurationEnum、sqlTypeSQLParameter、SQLConstantExpression、join、sqlType、sqlType、sqlType、sqlType、sqlTypefetchBy、keepNativeStyle
启动类报错
必须配置文件选择一个数据库不可以不选
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'easyQueryClient' defined in class path resource [com/easy/query/sql/starter/EasyQueryStarterBuildAutoConfiguration.class]: Failed to instantiate [com.easy.query.core.api.client.EasyQueryClient]: Factory method 'easyQueryClient' threw exception with message: Please select the correct database dialect. For Spring-related configuration, set it in the yml file, for example:[easy-query.database: mysql]类、接口变动
| v2 | v3 | 
|---|---|
| SQLExpression1....11 | SQLActionExpression1....11 | 
| ColumnFunctionCompareComparableStringChainExpression | StringTypeExpression | 
| ColumnFunctionCompareComparableNumberChainExpression | NumberTypeExpression | 
| ColumnFunctionCompareComparableDateTimeChainExpression | DateTimeTypeExpression | 
| ColumnFunctionCompareComparableBooleanChainExpression | BooleanTypeExpression | 
| ColumnFunctionCompareComparableAnyChainExpression | AnyTypeExpression | 
| ColumnFunctionCompareComparablePartitionByChainExpression | PartitionByTypeExpression | 
| ColumnFunctionCompareComparableJsonMapChainExpression | JsonMapTypeExpression |