MyBatis - 解决逆向工程生成 xxxKey & xxxWithBlos 实体类

简介: MyBatis - 解决逆向工程生成 xxxKey & xxxWithBlos 实体类

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


image.png

  • 生成类如图

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

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

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

image.png

  • 加上之后再生成一次,结果发现这个 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>
目录
相关文章
|
2月前
|
XML Oracle Java
mybatis反向生成实体类、dao层以及映射文件
mybatis反向生成实体类、dao层以及映射文件
15 1
|
2月前
|
XML Java 数据库连接
mybatis-plus逆向工程详解
mybatis-plus逆向工程详解
103 0
|
3月前
|
Java 数据库连接 Maven
使用mybatis插件generator生成实体类,dao层和mapper映射
使用mybatis插件generator生成实体类,dao层和mapper映射
61 0
|
2月前
ssm(Spring+Spring mvc+mybatis)实体类——Dept
ssm(Spring+Spring mvc+mybatis)实体类——Dept
15 0
|
4月前
|
Java 数据库连接 Maven
MyBatis逆向工程可以生成哪些内容?
MyBatis逆向工程可以生成哪些内容?
21 0
|
4月前
|
SQL Java 数据库连接
MyBatis之逆向工程
【1月更文挑战第4天】 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类 Mapper接口 Mapper映射文件
34 2
|
4月前
|
SQL Java 数据库连接
MyBatis的逆向工程
MyBatis的逆向工程
|
5月前
|
存储 Java 数据库连接
SpringBoot整合MyBatis-generator逆向工程
SpringBoot整合MyBatis-generator逆向工程
29 0
|
5月前
|
SQL Java 数据库连接
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
48 0
|
7月前
|
Java 数据库连接 数据库
36MyBatis -逆向工程
36MyBatis -逆向工程
28 0