關(guān)于mybatis一對一查詢一對多查詢遇到的問題
springboot整合mybatis項(xiàng)目
博客系統(tǒng)
文章,相冊,評論,標(biāo)簽,等表
IDEA為最新版2021.3.3,mysql數(shù)據(jù)庫為最新版Navicat
(或許有些字段不支持特定的命名)
也是醉了,以前idea還是19版的,navicat也是老版本的時(shí)候mybatis關(guān)聯(lián)查詢mapper操作能正常運(yùn)行,拿到相應(yīng)字段,并封裝,但最近寫項(xiàng)目過程中遇到一個(gè)離譜的是,過了好久才發(fā)現(xiàn),
當(dāng)關(guān)聯(lián)查詢時(shí),無論一對一還是一對多
除了需要注意javaType和ofType之外,還應(yīng)該注意各表主鍵不能同一名稱
實(shí)體類文章
@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; }
接下來是對文章進(jìn)行操作,要求查詢?nèi)课恼?,并關(guān)聯(lián)查詢作者,文章標(biāo)簽(一個(gè)文章多個(gè)標(biāo)簽)
先看一下我下面代碼塊的寫法,注意一對一,一對多的各個(gè)實(shí)體查詢時(shí)的id,都是拿的數(shù)據(jù)庫的id字段,只有標(biāo)簽被我改為了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>
如下圖
所以當(dāng)我測試的時(shí)候能正常根據(jù)id拿到每張表的同一主鍵名稱id嗎
并不能拿到
控制臺僅僅正確輸出了標(biāo)簽list中的tag_id,沒錯(cuò),細(xì)心點(diǎn),我也是最后才發(fā)現(xiàn),它nn的,上面輸出的user(文章作者)他的id封裝錯(cuò)了,他的id是這篇文章的id,所以,sql我自此所有表的主鍵不都全命名為id了,防止此處再烙下病根,而且數(shù)據(jù)庫字段在命名時(shí),我發(fā)現(xiàn)字段名字為describe和tag都查不到數(shù)據(jù),本來想簡簡單單命名的數(shù)據(jù)庫表,也得上心了拜拜了~~改bug去了????????????
///
看控制臺輸出/
我的用戶表里就沒有id為56的
到此這篇關(guān)于關(guān)于mybatis一對一查詢,一對多查詢遇到的錯(cuò)誤的文章就介紹到這了,更多相關(guān)mybatis一對一查詢一對多查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis中一對多(collection)和一對一(association)的組合查詢使用
- Mybatis實(shí)現(xiàn)一對一、一對多關(guān)聯(lián)查詢的方法(示例詳解)
- Mybatis使用@one和@Many實(shí)現(xiàn)一對一及一對多關(guān)聯(lián)查詢
- springboot整合mybatis-plus基于注解實(shí)現(xiàn)一對一(一對多)查詢功能
- mybatis 一對一、一對多和多對多查詢實(shí)例代碼
- Mybatis 中的一對一,一對多,多對多的配置原則示例代碼
- Mybatis中的高級映射一對一、一對多、多對多
- mybatis中一對一、一對多的<association> 配置使用
相關(guān)文章
JAVA代碼實(shí)現(xiàn)MongoDB動(dòng)態(tài)條件之分頁查詢
這篇文章主要介紹了JAVA如何實(shí)現(xiàn)MongoDB動(dòng)態(tài)條件之分頁查詢,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07Java?Git?Commit?Message使用規(guī)范
這篇文章主要介紹了Java?Git?Commit?Message使用規(guī)范,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-08-08mybatis引用其他文件中的sql片段的實(shí)現(xiàn)
Mybatis中也是支持引用其他Mapper文件中的SQL片段的,本文就來介紹一下如何使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03SpringBoot整合ES-Elasticsearch的實(shí)例
這篇文章主要介紹了SpringBoot整合ES-Elasticsearch的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05springboot項(xiàng)目突然啟動(dòng)緩慢的解決
這篇文章主要介紹了springboot項(xiàng)目突然啟動(dòng)緩慢的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11