| 1. fix 仅更新脏数据;2. 去掉-O2 --lto=full编译优化选项;3. 为SQL方言实例添加实例化条件;4. 改进SQL方言声明, version: 1.0.48
| 4 个月前 |
| ```
refactor(f_orm): 重构脏字段标记系统并优化SQL执行器
- 将f_orm_register相关函数重命名为DirtyTag类方法,统一管理脏字段标记
- 在SqlExecutor中使用try-finally确保查询后正确设置脏标记状态
- 修改updateDirty方法调用为标准UPDATE方法并启用dirty参数
- 优化数据库方言标识符处理逻辑,支持不同的引号格式
BREAKING CHANGE: 原有的f_orm_*脏字段管理函数已替换为DirtyTag类方法
```
| 4 个月前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| ```
fix(f_orm): 修复SQL分页查询中的边界条件检查
当partial字符串长度不足时会导致数组越界错误,
现在添加了长度检查避免访问超出范围的索引位置。
同时修正了select关键字检测逻辑,确保只有以'select'开头且后面跟有空格的语句才被认为是合法的。
docs: 在.gitignore中添加CODEBUDDY.md到忽略列表
```
| 1 个月前 |
| ```
feat(f_mockdb): 实现线程安全的执行函数存储
将MOCKDB的execution存储改为AtomicOptionReference以支持并发访问,
添加了EMPTY_EXECUTION作为默认执行函数,并更新了getter/setter方法。
fix(f_orm): 修复DatabasePool并发测试中的连接获取问题
修改测试用例以验证数据库连接池在多线程环境下的行为,
添加超时设置和性能监控代码。
```
| 3 个月前 |
| feat(StringGenerator): 添加字符串操作方法并优化索引查找逻辑
新增 startsWith、endsWith、substring 和 clear 方法以增强字符串生成器功能。
同时修改 lastIndexOf 方法的默认参数值,并修复 removeLast 和 replace 相关调用。
feat(ChooseCondition): 重构条件生成逻辑并支持 SQL 片段收集
将 gen 函数内联并确保 _otherwise 条件能够正确返回 SQL 片段,
同时将生成的 SQL 添加到执行器的 partials 中以便统一处理。
feat(MeetCondition): 改进 done 方法实现并支持 SQL 片段收集
使用 if 表达式替代原 if 语句,并在方法结束前将生成的 SQL 添加至执行器的 partials 列表中。
feat(SqlExecutor): 引入线程局部变量管理机制和 partials 支持
增加 currents 用于存储驱动名称与执行器映射关系,current 保存当前线程执行器实例;
添加 getCurrent 静态方法获取当前执行器,并引入 Partials 类型字段 partials 用于 SQL 片段收集。
feat(SqlPartial): 扩展 INTO 接口定义以支持忽略列插入
为 INTO 方法添加 ignoreColumns 参数,允许调用方指定需要忽略的列名数组,
从而在生成插入语句时排除这些字段。
feat(TableClause): 优化 WHERE 和其他子句的 SQL 片段构建方式
WHERE 方法现在接受字符串或函数,并在执行前后清空 partials 缓存;
更新 appendPartial 方法直接接收字符串参数,ORDER_BY、GROUP_BY、SET 等方法也相应调整为立即求值。
| 6 个月前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| set => SET where => WHERE
| 9 个月前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| fountain.orm 增加sql辅助工具
| 7 个月前 |
| Some codes were changed, version: 1.0.0
| 7 个月前 |
| Some codes were changed, version: 1.0.0
| 7 个月前 |
| 1. fix 仅更新脏数据;2. 去掉-O2 --lto=full编译优化选项;3. 为SQL方言实例添加实例化条件;4. 改进SQL方言声明, version: 1.0.48
| 4 个月前 |
| 修改开源协议
| 9 个月前 |
| 1. 为SQL 标识符增加包含字符,POSTGRES是双引号,其它是反引号
2. ORM实现updateDirty,只更新修改过的成员
3. 改进ORM SqlPartial的UPDATE,如果SET子句是空的会抛出异常
4. 2 3两条,如果没有在参数类型找到主键列,会抛出异常
5. 2 3两条,主键列不参与更新
6. ORM DataAny类型加入到SQL参数
7. IOC 获取bean时记录DEBUG日志
8. fix 反应式编程API
9. ORM 支持ON DUPLICATE KEY UPDATE
10. cjpm build在App只执行一次,且支持cjpm build的所有参数
11. 改进MediaTypes
12. MediaTypes增加DEBUG日志,且修改注册自定义MediaTypes的注册时机
13. f_data 中间类型改成struct, version: 1.0.46
| 4 个月前 |
| ```
refactor(orm): 移除冗余的 populate 方法并优化类型转换逻辑
- 在 IdQueryMapper 中移除了重复定义的 populate 方法
- 修改 QueryMapper 中的类型匹配逻辑,将异常抛出改为返回 None<T>
- 在 FieldQueryMapper 中重新添加了通用的 populate 方法以确保字段填充逻辑统一
- 简化 DataType.getValue 方法中的判空逻辑,统一使用 getOrNull
- 修复 QueryResultWrap.getOrNull 方法中对列名不存在情况的处理,避免潜在运行时错误
- 更新 fdemo/cjpm.toml 中 opengauss 驱动依赖配置注释,便于本地调试
- 在 UserDAO 示例中增加数据库查询测试代码,用于验证 ORM 映射功能
```
| 7 个月前 |
| 修改开源协议
| 9 个月前 |
| ```
feat(orm): 优化SQL条件构建逻辑并支持动态SQL片段
- 重构 MeetCondition.cj 中的 done() 方法,使用 frag 简化SQL拼接逻辑
- 在 RootDAO.cj 的 meet 方法中显式处理SQL片段的添加逻辑
- 延迟清理SQL参数至 clearSql() 方法中,并增加 clearArgsAfterExec_ 控制开关
- 在 UserDAO.cj 示例中添加动态 EXISTS 查询用法
- 调整 UserServiceImpl.cj 注解配置,启用 @Bean 并注释掉 @TransactionalService
```
| 6 个月前 |
| fountain.orm 增加sql辅助工具
| 7 个月前 |
| Some codes were changed, version: 1.0.0
| 7 个月前 |
| ```
refactor(f_orm): 修改ORM注册驱动的逻辑,如果使用了mockdb,则不再初始化其他驱动,orm中的'mockdb'改为ORMConfig的公共静态常量,orm模块的其他'mockdb'都改为使用这个常量。
```
| 4 个月前 |
| 修改开源协议
| 9 个月前 |
| Some codes were changed, version: 1.0.0
| 7 个月前 |
| 优化BitSet初始化;丰富SQL dsl;优化ConcurrentHashSet.removeIf;修复AOP和事务控制切面;修复InsertClause, version: 1.0.21
| 6 个月前 |
| ```
feat(f_orm): 添加字段名称映射和SQL参数处理功能
添加了QueryMapper中的fieldName属性,用于获取数据类型的字段名称。
实现了RootDAO中针对Data和Any类型的arg方法重载,支持更多数据类型的安全转换,
包括布尔值、数值、字符串、日期时间等类型的SQL参数处理。
新增多个UPDATE和INTO方法重载,支持直接传入对象进行数据库操作,
包括基于Map的更新方法和带条件列过滤的更新功能,增强了ORM操作的灵活性。
```
| 4 个月前 |
| ```
feat(QueryMapper): 添加 columnName 属性以支持自定义列名
在 QueryMapper 中新增 columnName 属性,用于获取数据类型对应的列名。
同时,在 QueryMappers 中添加 idName 属性,以便于查询和删除操作可以使用
自定义主键名称。修改 TableClause 和 UpdateClause 中的 SQL 生成逻辑,
使用 idName 替代硬编码的 'id' 字段,提升 ORM 的灵活性与通用性。
```
| 5 个月前 |
| ```
feat(QueryMappersInit): 添加对Decimal和BigInt类型的支持
在QueryMappersInit接口中增加对std.math.numeric包中Decimal和BigInt类型的扩展支持,
使这些数值类型能够被正确映射和处理。
```
| 7 个月前 |
| 修改开源协议
| 9 个月前 |
| Some codes were changed, version: 1.0.0
| 7 个月前 |
| ```
feat(f_orm): 支持DataAny类型参数绑定并优化导入
添加f_data模块导入以支持DataAny类型处理,在RootDAO中增加DataAny类型的
case分支用于SQL参数绑定,同时移除SqlExecutor中不必要的Console导入。
```
| 4 个月前 |
| feat(orm): 添加dao方法支持泛型类型约束
新增两个dao方法重载版本,支持通过driver参数和无参数方式获取
RootDAO实例。方法内部通过executor获取SqlExecutor实例,并进行
类型检查,若无法转换则抛出ORMException异常。完善了ORM框架
的类型安全性和使用便利性。
| 5 个月前 |
| ```
refactor(SqlExecutor): 优化SQL执行逻辑并改进异常处理
重构了execute方法的实现,移除了嵌套的execute调用以简化代码结构。
改进了资源管理和异常处理机制,确保查询结果正确关闭并妥善处理异常情况,
增强了代码的健壮性和可维护性。
```
| 5 天前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| ```
feat(aspect): 支持对宏展开声明的递归解析与处理
重构了 Pointcut 宏,增强其对嵌套 MacroExpandDecl 的解析能力,
确保能正确提取并转换原始函数或类声明。同时优化参数解析逻辑,
支持从宏展开中准确获取 FuncParam 信息。
fix(bean): 调整构造器匹配逻辑以排除 init 函数
在 Bean 宏中更新构造函数筛选条件,明确跳过名为 'init' 的初始化方法,
防止误将其识别为普通带注解的构造函数。
refactor(mvc): 整合 Controller 与 Pointcut 宏行为
将 @Controller 与 @WeavedController 合并实现逻辑,
统一为其自动添加 @Bean 及 @Pointcut 注解,并生成相应的 MVC 元数据注册代码。
feat(orm): 将 initialize 方法设为公共可调用
将 ORM 类中的 initialize 方法由私有改为公有,便于外部显式触发 ORM 初始化流程。
refactor(transaction): 简化传播属性赋值逻辑
TransactionalService 宏现在直接引用 propagation 属性值,
不再进行额外的 Optional 判断包装。
chore(config): 更新默认日志级别及切点配置
boot.sh 中将控制台日志级别由 ERROR 调整为 INFO,
新增 controllerPointcut 配置项用于 AOP 切点定义,
细化 orm_transactionalFuncExecution 匹配规则至 ServiceImpl 实现类。
refactor(macro): 统一宏输入声明替换方式
修改多处宏展开逻辑中对 macroInputs 的操作为 macroInputDecl 并重新解析,
保证 AST 结构一致性与后续处理准确性。
docs(controller): 移除多余的 BeanMeta 示例注释
删除 CurrentUserController 中重复且无实际用途的 @BeanMeta 示例注解。
```
| 5 个月前 |
| 修改开源协议
| 9 个月前 |
| 修改开源协议
| 9 个月前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| fix(Transactional): 修改传播行为属性为可选类型并提供默认值
将 propagation 属性从非可选的 Required 类型修改为可选的 Propagation 类型,
默认值设为 None。在 getPropagation 方法中添加匹配逻辑,当 propagation
为 None 时返回 Required,确保事务传播行为的向后兼容性。
| 6 个月前 |
| 修改开源协议
| 9 个月前 |
| 修改日志,fix StringGenerator
| 7 个月前 |
| feat(f_orm): 支持可空类型字段的正确转换与映射
在 QueryMapper 中增强对可空类型的处理逻辑,根据 DataType 的 nullable 属性决定是否使用
convertNullable 方法进行安全转换。同时开放 DataType 类中 nullable 字段的访问权限,
并调整 ORMConverter.convert 方法的实现,使其依赖 convertNullable 并在值为 None 时抛出异常。
| 7 个月前 |