最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis mapper互相引用resultMap啟動(dòng)出錯(cuò)的解決

 更新時(shí)間:2021年08月25日 11:45:17   作者:隔壁的老司機(jī)  
這篇文章主要介紹了mybatis mapper互相引用resultMap啟動(dòng)出錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis mapper互相引用resultMap啟動(dòng)出錯(cuò)

問題

Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for kulink.cvscloud.core.mapper.OrderSundryMapper.BaseResultMap
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:888) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:640) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:344) ~[mybatis-3.4.5.jar:3.4.5]

... 73 common frames omitted

原因

因?yàn)閙ybatis掃描加載的時(shí)候,是按順序加載的A-Z,因?yàn)閙apperA中引用mapperB中的ResultMap

但是啟動(dòng)加載的時(shí)候mapperB加載在mapperA之后,所以造成mapperB.ResultMap找不到的問題。

解決方法

升級(jí)新版本,已經(jīng)解決這個(gè)問題了

或者在引用mapper.xml中把resultMap直接復(fù)制過來

mybatis resultMap引發(fā)的吐血bug

簡單的講

問題背景:如果在寫mybatis中的resultMap時(shí),不下心將resultMapde id寫成映射接口的名字,會(huì)發(fā)生什么?

結(jié)論:單元測(cè)試進(jìn)度條卡住但不報(bào)錯(cuò), Tomcat運(yùn)行不報(bào)錯(cuò),但是不加載項(xiàng)目

以下是詳細(xì)的

需求:從數(shù)據(jù)庫中加載之前插入log日志,打印在某一頁面上。

如:

在這里插入圖片描述

Java中的pojo:

package pojo;
import java.io.Serializable;
import java.util.Date;
/**
 * 系統(tǒng)日志
 *
 * @author Administrator
 */
public class Log implements Serializable {
    private static final long serialVersionUID = -7372303516713218870L;
    private int id;//
    private int userId;//
    private String userName;
    private Date createDate;//創(chuàng)建日期
    private String content;//日志內(nèi)容
    private String operation;//用戶所做的操作
    private String url;//用戶所做的操作
    public Log() {
    }
    public Log(int id, int userId, String userName, Date createDate, String content, String operation, String url) {
        this.id = id;
        this.userId = userId;
        this.userName = userName;
        this.createDate = createDate;
        this.content = content;
        this.operation = operation;
        this.url = url;
    }
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public Date getCreateDate() {
        return createDate;
    }
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getOperation() {
        return operation;
    }
    public void setOperation(String operation) {
        this.operation = operation;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    @Override
    public String toString() {
        return "Log{" +
                "id=" + id +
                ", userId=" + userId +
                ", userName='" + userName + '\'' +
                ", createDate=" + createDate +
                ", content='" + content + '\'' +
                ", operation='" + operation + '\'' +
                ", url='" + url + '\'' +
                '}';
    }
}

利用mybatis讀取數(shù)據(jù)時(shí),發(fā)生不可理解的事情

在這里插入圖片描述

public List<Log> listAll();
    <resultMap id="LogMapper" type="Log">
        <id column="userid" property="userId"/>
        <result column="username" property="userName"/>
        <result column="content" property="content"/>
        <result column="operation" property="operation"/>
        <result column="createdate" property="createDate"/>
        <result column="url" property="url"/>
    </resultMap>
    <select id="listAll"   resultMap="LogMapper">
        SELECT * FROM t_log
    </select>

程序一旦單元測(cè)試就會(huì)進(jìn)入這樣的狀態(tài),

在這里插入圖片描述

無限循環(huán),沒有結(jié)束。不僅這個(gè)方法,所有的測(cè)試方法都進(jìn)入這種“阻塞”的狀態(tài),關(guān)鍵還沒有異常的提示(哭~)不僅如此,重啟tomcat會(huì)進(jìn)入這樣

在這里插入圖片描述

一方面tomcat不再加載項(xiàng)目,同時(shí)釋放了幾個(gè)看起來像是bug的坑,其實(shí)這些都時(shí)正常的信息,沒有其他的東西!
期間重新導(dǎo)過jar包,刪除過tomcat,重新部署項(xiàng)目,但只有一添加上述代碼,就會(huì)崩潰。最后發(fā)現(xiàn),原來和接口名字重復(fù)了,重復(fù)了。。。。。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java手動(dòng)實(shí)現(xiàn)Redis的LRU緩存機(jī)制

    Java手動(dòng)實(shí)現(xiàn)Redis的LRU緩存機(jī)制

    在Java中LRU的實(shí)現(xiàn)方式是使用HashMap結(jié)合雙向鏈表,HashMap的值是雙向鏈表的節(jié)點(diǎn),雙向鏈表的節(jié)點(diǎn)也保存一份key value。
    2021-05-05
  • 一個(gè)通用的Java分頁基類代碼詳解

    一個(gè)通用的Java分頁基類代碼詳解

    這篇文章主要介紹了一個(gè)通用的Java分頁基類代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • java的新特性反射機(jī)制應(yīng)用及操作示例詳解

    java的新特性反射機(jī)制應(yīng)用及操作示例詳解

    這篇文章主要為大家介紹了java的新特性反射機(jī)制的操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C++內(nèi)存管理看這一篇就夠了

    C++內(nèi)存管理看這一篇就夠了

    這篇文章主要介紹了C/C++中的內(nèi)存管理小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • java實(shí)現(xiàn)KFC點(diǎn)餐小程序

    java實(shí)現(xiàn)KFC點(diǎn)餐小程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)KFC點(diǎn)餐系統(tǒng)小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java的long和bigint長度對(duì)比詳解

    Java的long和bigint長度對(duì)比詳解

    在本文中小編給大家分享了關(guān)于Java的long和bigint長度比較的知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)參考下。
    2019-07-07
  • SpringBoot?全局線程池配置及應(yīng)用小結(jié)

    SpringBoot?全局線程池配置及應(yīng)用小結(jié)

    為了提高應(yīng)用程序的性能和響應(yīng)速度,線程池是一個(gè)非常重要的工具,本文主要介紹了Spring?Boot?全局線程池配置及應(yīng)用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • java實(shí)現(xiàn)線程阻塞式方法

    java實(shí)現(xiàn)線程阻塞式方法

    Java阻塞式方法會(huì)使線程暫停執(zhí)行,不占用CPU資源直至條件滿足,常見阻塞方法如Thread.sleep()、Object.wait()和I/O操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • RocketMq事務(wù)消息發(fā)送代碼流程詳解

    RocketMq事務(wù)消息發(fā)送代碼流程詳解

    這篇文章主要介紹了RocketMq事務(wù)消息發(fā)送代碼流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 快速了解Maven

    快速了解Maven

    這篇文章主要介紹了快速了解Maven,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

宜春市| 灵川县| 石棉县| 密山市| 德格县| 安阳市| 武隆县| 麻江县| 九龙县| 房产| 壶关县| 桃园市| 达尔| 新闻| 麻江县| 安庆市| 房产| 建始县| 石狮市| 屯留县| 渝北区| 文成县| 甘孜| 名山县| 手机| 无为县| 博客| 濮阳县| 连南| 泗洪县| 酒泉市| 济宁市| 侯马市| 松溪县| 沿河| 曲周县| 汶川县| 商南县| 宁津县| 苗栗市| 依安县|