您好,登錄后才能下訂單哦!
這篇文章主要介紹“mybatis一對一查詢一對多查詢遇到的問題怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mybatis一對一查詢一對多查詢遇到的問題怎么解決”文章能幫助大家解決問題。
實體類文章
@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的
關于“mybatis一對一查詢一對多查詢遇到的問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。