MyBatis逆向工程中domainObjectRenamingRule報錯或無效


使用domainObjectRenamingRule報錯

在使用MyBatis逆向工程時報錯如下:

org.mybatis.generator.exception.XMLParserException: XML Parser Error on line 43: 必須聲明元素類型 "domainObjectRenamingRule"。
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:121)
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:82)
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:74)
    at GeneratorSqlmap.generator(GeneratorSqlmap.java:22)
    at GeneratorSqlmap.main(GeneratorSqlmap.java:32)

domainObjectRenamingRule該功能項是在MBG 1.3.6中新增加的功能,用於定義實體的重命名規則,常見的用途是取消表前綴。類似於columnRenamingRule,前者是重命名生成的模型對象的名稱,后者是重命名表字段的名稱。
如果在低於該版本的MBG中使用該功能,會出現如下錯誤XML Parser Error on line 59: 必須聲明元素類型 "domainObjectRenamingRule"。

使用domainObjectRenamingRule無效

配置好了domainObjectRenamingRule后,運行逆向工程卻無效果,原因是searchString的值配置不對。
根據表名來生成的類名是按照駝峰命名法,生成的類名首字母是大寫的。而searchString是區分大小寫的,並且它的值是Java里的正則表達式。

舉個例子,現在有個表叫tb_vq,我希望生成的類名是Vq,而不是TbVq,可以通過domainObjectRenamingRule來實現這個功能,配置如下:

<table tableName="tb_vq" schema="" enableCountByExample="false"
enableDeleteByExample="false" enableUpdateByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
    <domainObjectRenamingRule searchString="^Tb" replaceString="" />
</table>

需要注意的是,這里的searchString必須填^Tb,這是個Java正則表達式,這里不能寫成^tb,必須首字母大寫,否則匹配不上,另外為了避免匹配出錯,這里使用了^Tb而不是Tb

參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM