MyBatis Generator如何配置避免生成*WithBLOBs实体扩展类
MyBatis Generator 禁止生成*WithBlobs类解决方案
结论
可以直接禁止*WithBlobs扩展类的生成,MyBatis Generator 原生提供了对应配置项实现该需求。
核心配置说明
MyBatis Generator 通过defaultModelType属性控制实体类的生成策略,该属性可配置在<context>标签(全局生效)或<table>标签(单表生效,优先级更高)上,可选值如下:
conditional:默认值,表存在主键时生成Key实体类,存在CLOB/BLOB大字段时生成WithBlobs实体类flat:所有字段(主键、普通字段、大字段)全部合并到同一个主实体类中,不会生成任何扩展类hierarchical:分层生成实体类,主键类为父类,普通实体类继承主键类,*WithBlobs类继承普通实体类
配置示例
<!-- 全局配置:所有表都使用flat模型,全局禁用扩展类生成 --> <context id="OracleContext" targetRuntime="MyBatis3" defaultModelType="flat"> <!-- 数据源配置、插件配置、生成路径配置等其余内容省略 --> <!-- 单表配置:仅指定表禁用扩展类生成,优先级高于全局配置 --> <table tableName="你的表名" domainObjectName="你的实体类名" defaultModelType="flat"> <!-- 字段映射、主键配置等其余表级配置省略 --> </table> </context>
补充说明
配置生效后,CLOB类型字段会直接映射到主实体类中,不会出现字段丢失问题,Mapper对应查询方法的返回值也会自动调整为主实体类,无需额外修改调用逻辑。
如果你的配置中已经将targetRuntime设置为MyBatis3Simple,该模式默认就不会生成*WithBlobs类,无需额外配置该属性。
内容的提问来源于stack exchange,提问作者Plijen
相关产品推荐
相关产品推荐

