關於mybatis一對一查詢一對多查詢遇到的問題

springboot整合mybatis項目
博客系統
文章,相冊,評論,標簽,等表
IDEA為最新版2021.3.3,mysql數據庫為最新版Navicat
(或許有些字段不支持特定的命名)

也是醉瞭,以前idea還是19版的,navicat也是老版本的時候mybatis關聯查詢mapper操作能正常運行,拿到相應字段,並封裝,但最近寫項目過程中遇到一個離譜的是,過瞭好久才發現,

當關聯查詢時,無論一對一還是一對多
除瞭需要註意javaType和ofType之外,還應該註意各表主鍵不能同一名稱

實體類文章

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Article implements Serializable {
    private Integer id;
    private Integer authorId;
    private String title;
    private String content;
    private Timestamp date;//private LocalDate date;
    private Users user;
    private List<Comment> commentList;
    private List<ArticleTag> articleTagList;
}

接下來是對文章進行操作,要求查詢全部文章,並關聯查詢作者,文章標簽(一個文章多個標簽)

先看一下我下面代碼塊的寫法,註意一對一,一對多的各個實體查詢時的id,都是拿的數據庫的id字段,隻有標簽被我改為瞭tag_id

<select id="queryAllArticles" resultMap="ArticleList">
        select a.*,u.*,t.*
        from article a
                 join users u on a.authorid = u.id
                 left outer join article_tag t on a.id = t.article_id
    </select>
    <resultMap id="ArticleList" type="article">
        <id column="id" property="id"/>
        <result column="authorid" property="authorId"/>
        <result column="title" property="title"/>
        <result column="content" property="content"/>
        <result column="date" property="date"/>
        <association property="user" javaType="users">
            <id column="id" property="id"/>
            <result column="pet_name" property="petName"/>
            <result column="headportrait" property="headPortrait"/>
        </association>
        <collection property="articleTagList" ofType="articleTag">
            <id column="tag_id" property="tagId"/>
            <result column="article_id" property="articleId"/>
            <result column="tag_content" property="tag"/>
        </collection>
    </resultMap>

如下圖
所以當我測試的時候能正常根據id拿到每張表的同一主鍵名稱id嗎

並不能拿到
控制臺僅僅正確輸出瞭標簽list中的tag_id,沒錯,細心點,我也是最後才發現,它nn的,上面輸出的user(文章作者)他的id封裝錯瞭,他的id是這篇文章的id,所以,sql我自此所有表的主鍵不都全命名為id瞭,防止此處再烙下病根,而且數據庫字段在命名時,我發現字段名字為describe和tag都查不到數據,本來想簡簡單單命名的數據庫表,也得上心瞭拜拜瞭~~改bug去瞭🥲😭🥲😭✍️✍️
///

看控制臺輸出/

我的用戶表裡就沒有id為56的

user

article

到此這篇關於關於mybatis一對一查詢,一對多查詢遇到的錯誤的文章就介紹到這瞭,更多相關mybatis一對一查詢一對多查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: