zoukankan      html  css  js  c++  java
  • mybatis逆向工程生成mapper报错

    Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法
    一、问题描述
    今天在做项目时,遇到一个错误:“Result Maps collection already contains value for com.xxx.dao.tb_userMapper.BaseResultMap”

    最简单的方法就是将逆向工程在eclipse中移除掉,然后重新import这个逆向工程,然后重新生成mapper文件。

    因为如果之前生成过一张相同的表,逆向工程会再生成,导致内容重复,报该表的错误。
    二、原因分析
        Mybatis-Generator在生成Mapper.xml文件时,会在原来基础上再生成,导致内容重复。
    三、解决办法
    (1)改造Mybatis-generator插件
        参考mybatis-generator重新生成代码时的SQL映射文件覆盖
    (2)将手写xml文件与自动生成xml文件分离
        手写文件放在src/main/resources/mybatis目录中
        生成文件放在src/main/resources/mybatis-generator目录中,这样便于在生成之前手动删除。
        generatorConfig.xml配置:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <classPathEntry
            location="D:Javamaven epositorymysqlmysql-connector-java5.1.31mysql-connector-java-5.1.31.jar" />
        <context id="aisSnsTables" targetRuntime="MyBatis3">
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
            <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
            <!-- 抑制生成代码的注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/liying" userId="root"
                password="root@" />
            <javaModelGenerator targetPackage="com.uni2uni.model"
                targetProject="src/main/java" />
            <sqlMapGenerator targetPackage="/"
                targetProject="src/main/resources/mybatis-generator" />
            <javaClientGenerator targetPackage="com.uni2uni.dao"
                targetProject="src/main/java" type="XMLMAPPER">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
            <table schema="liying" tableName="tb_user" domainObjectName="tb_user" />
            <table schema="liying" tableName="tb_admin" domainObjectName="tb_admin" />
            <table schema="liying" tableName="tb_role" domainObjectName="tb_role" />
            <table schema="liying" tableName="tb_resource" domainObjectName="tb_resource" />
            <table schema="liying" tableName="tb_user_role" domainObjectName="tb_user_role" />
            <table schema="liying" tableName="tb_role_resource" domainObjectName="tb_role_resource" />
            <table schema="liying" tableName="tb_category" domainObjectName="tb_category"/>
            <table schema="liying" tableName="tb_shop" domainObjectName="tb_shop"/>
        </context>
    </generatorConfiguration>

        mybatis.xml配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <typeAliases>
            <typeAlias alias="user" type="com.uni2uni.model.tb_user" />
            <typeAlias alias="admin" type="com.uni2uni.model.tb_admin" />
            <typeAlias alias="role" type="com.uni2uni.model.tb_role" />
            <typeAlias alias="resource" type="com.uni2uni.model.tb_resource" />
            <typeAlias alias="category" type="com.uni2uni.model.tb_category" />
            <typeAlias alias="shop" type="com.uni2uni.model.tb_shop" />
        </typeAliases>
        <plugins>
            <plugin
                interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
                <property name="dialectClass"
                    value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect" />
            </plugin>
        </plugins>
        <mappers>
            <mapper resource="mybatis/tb_user.xml" />
            <mapper resource="mybatis-generator/tb_userMapper.xml" />
            <mapper resource="mybatis/tb_admin.xml" />
            <mapper resource="mybatis-generator/tb_adminMapper.xml" />
            <mapper resource="mybatis/tb_role.xml" />
            <mapper resource="mybatis-generator/tb_roleMapper.xml" />
            <mapper resource="mybatis/tb_resource.xml" />
            <mapper resource="mybatis-generator/tb_resourceMapper.xml" />
            <mapper resource="mybatis/tb_user_role.xml" />
            <mapper resource="mybatis-generator/tb_user_roleMapper.xml" />
            <mapper resource="mybatis/tb_role_resource.xml" />
            <mapper resource="mybatis-generator/tb_role_resourceMapper.xml" />
            <mapper resource="mybatis/tb_category.xml" />
            <mapper resource="mybatis-generator/tb_categoryMapper.xml" />
            <mapper resource="mybatis/tb_shop.xml" />
            <mapper resource="mybatis-generator/tb_shopMapper.xml" />
        </mappers>

    </configuration>

  • 相关阅读:
    OC字符串处理
    用 map 表达互斥逻辑
    iOS之LLDB调试器
    iOS 线程安全 锁
    OC实现 单向链表
    iOS读取info.plist中的值
    SQLite 如何取出特定部分数据
    UIView常用的一些方法setNeedsDisplay和setNeedsLayout
    xCode常用快捷键
    oppo7.0系统手机(亲测有效)激活Xposed框架的流程
  • 原文地址:https://www.cnblogs.com/fengli9998/p/6689696.html
Copyright © 2011-2022 走看看