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