Mybatis 逆向工程时,生成了一个 xxxKey 实体类(或者xxxWithBlos类)

    在做Mybatis 逆向工程生成 Javabean 时,结果发现生成多了一个 xxxKey 实体类,经过一番百度后知道了生成这个实体类的原因是表中存在联合主键,然后为了便于代码的重构,把实体和实体的关系隔绝到两个类,互相不干扰。

    生成类如下图:

     由于表 Answersheet 和表 Score 中都存在联合主键,然后一个表直接生成对应的三个 JavaBean(xxx,xxxExample,xxxKey)

      如果想要正常生成,即不生成 xxxKey 实体类,只要在逆向工程的配置文件中的 context 标签里加上这个 defaultModelType="flat" 属性即可。(defaultModelType 为控制生成类方式)

<context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">

加上之后再生成一次,结果发现这个 xxxKey 实体类没有了

---------------------------------------------------------------------------------------------------------------------

补充一下:

       最近用mybatis的逆向工程生成代码的时候,发现的类多了一个 xxxWithBlos的类,经过了解,这是因为数据库表中的一个字段是text 类型,而 mybatis 逆向工程生成类时,会为这个字段单独生成一个 xxxWithBlos 的类

这样做的原因是:

       text类型长度最大是65535,如果不用 blob 类型,就不能保证不溢出

解决:

       用以上解决生成xxxKey的方法即可

 

经过实践本人用以下方式不知道为什么是不可以的,如果上面的方式无效,可以尝试下这种,也许可以

<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
	connectionURL="jdbc:mysql://ip:port/DBName" userId="root"
		password="root">
		<!-- 加入以下 -->
		<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值