您好,登录后才能下订单哦!
这篇文章主要介绍“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。