MyBatis Generator为一张表自动生成了两个实体类
当数据库表内存在联合主键时,mybatis generator会默认生成两个实体类,一个只包含主键的实体类和一个包含其余字段的实体类,如果表里有BLOB字段,还会为所有BLOB字段生成单独的实体类,可以通过修改默认的defaultModelType属性更改生成方式,该属性支持三种生成方式:
1.conditional,默认是这种方式,当一张表只有一个主键时,不会为主键生成单独的实体类,超过一个则会生成单独的主键实体类,BLOB字段仍单独生成实体类。
2.hierarchical,只要表里有主键,就会生成单独的主键实体类,其余同上
3.flat,只为一张表生成一个实体类,包含所有字段
所以,当你不需要单独的主键实体类时,可以将defaultModelType更改为flat方式,
例如,
<context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
</context>
解决mybatis generator生成实体类和数据库字段名不一致
在使用Mybatis generatot 自动生成实体类时,遇到一个问题: 实体类中字段名和数据库中的字段名不一致。
具体问题描述如下:
如: 数据中:client_id , clientName 使用Mybatis generator 反转过来后变成了: clientId(下划线没了), clientname(统一小写)。
解决办法:
在 generatorConfig.xml 配置文件中,<table> 元素下增加 子元素
<property name="useActualColumnNames" value="true"/>
如:
<table tableName="v_user_detail" domainObjectName="VUserDetail" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" enableInsert="false" enableSelectByPrimaryKey="true" selectByPrimaryKeyQueryId="true"> <property name="useActualColumnNames" value="true"/> </table>
至此即可解决Mybaits Generator 自动生成实体类和数据库中字段名不一致的问题。