3 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個贊
1.設(shè)置mapper文件重復(fù)生成時覆蓋舊的文件
將GeneratedXmlFile中isMergeable設(shè)置為false,實(shí)現(xiàn)方式:修改IntrospectedTableMyBatis3Impl.getGeneratedXmlFiles方法構(gòu)造xml文件時傳入?yún)?shù)false。
GeneratedXmlFile gxf = new GeneratedXmlFile(document,
getMyBatis3XmlMapperFileName(), getMyBatis3XmlMapperPackage(),
context.getSqlMapGeneratorConfiguration().getTargetProject(),
false, context.getXmlFormatter());
2.oracle主鍵生成方式直接將sql寫在generatedKey的statement中。
3.控制是否生成PrimaryKeyClass
IntrospectedTable中的rules屬性(接口Rules)中有三個方法:generatePrimaryKeyClass()、generateBaseRecordClass()、generateRecordWithBLOBsClass()控制是否生成三種Model文件。
mybatis提供了三種ModelType: HIERARCHICAL("hierarchical")、FLAT("flat"),CONDITIONAL("conditional");對應(yīng)三種modelRule:HierarchicalModelRules、FlatModelRules、ConditionalModelRules。
通過在mybatis generator配置文件增加屬性defaultModelType=“hierarchical”可以控制不生成PrimarykeyClass。
這種配置會導(dǎo)致只包含聯(lián)合主鍵的表不能生成Model,可以通過修改HierarchicalModelRules方法中的generateBaseRecordClass()改為返回true,則可生成對應(yīng)Model。
添加回答
舉報(bào)