3 回答

TA貢獻1786條經驗 獲得超13個贊
1.設置mapper文件重復生成時覆蓋舊的文件
將GeneratedXmlFile中isMergeable設置為false,實現方式:修改IntrospectedTableMyBatis3Impl.getGeneratedXmlFiles方法構造xml文件時傳入參數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");對應三種modelRule:HierarchicalModelRules、FlatModelRules、ConditionalModelRules。
通過在mybatis generator配置文件增加屬性defaultModelType=“hierarchical”可以控制不生成PrimarykeyClass。
這種配置會導致只包含聯合主鍵的表不能生成Model,可以通過修改HierarchicalModelRules方法中的generateBaseRecordClass()改為返回true,則可生成對應Model。
添加回答
舉報