MyBatis-Flex的@Column注解全解析:从逻辑删除到自动时间戳的配置陷阱
在数据持久层框架中,字段行为的精细控制往往是区分普通开发者和架构师水平的关键能力。MyBatis-Flex作为轻量级ORM框架,其@Column注解提供的配置选项远不止于简单的字段映射,而是隐藏着许多值得深入挖掘的实践技巧和潜在陷阱。本文将带您穿透表面文档,探索那些只有实战中才会遇到的深层问题。
1. 逻辑删除的进阶实现与陷阱规避
逻辑删除作为企业级应用的标准实践,在MyBatis-Flex中通过@Column(isLogicDelete=true)即可快速启用。但实际落地时,开发者常会遇到三个典型问题:
场景一:多租户环境下的逻辑删除冲突
@Column(isLogicDelete = true)
private Integer deleted;
当系统需要同时支持逻辑删除和多租户隔离时,自动生成的SQL条件顺序可能影响查询性能。通过自定义FlexGlobalConfig可以调整条件生成策略:
FlexGlobalConfig.getDefaultConfig()
.setNormalValueOfLogicDelete("0")
.setDeletedValueOfLogicDelete("1")
.setLogicDeleteConditionCustomizer((logicColumn, value) -> {
return logicColumn + " = " + value;
});
场景二:批量删除不触发更新时间戳 这是最常见的配置陷阱。deleteBatchByIds方法内部使用物理删除语法生成策略,导致onUpdateValue<



被折叠的 条评论
为什么被折叠?



