gpt4 book ai didi

java - Mybatis 如何将另一个表中的列映射到字符串列表?

转载 作者:行者123 更新时间:2023-12-02 10:09:50 25 4
gpt4 key购买 nike

我有一个表 t_comment 和一个表 t_comment_photo。

t_comment有列id、内容;t_comment_photo 有列 id、comment_id、photo_url。t_comment_pohto 包含评论照片的url,一条评论可以有0到多张评论照片。

这些是他们的 java 类:

public class ToyComment {
private Integer id;
private String content;
private List<String> urls;
...
}
public class CommentPhoto {
private Integer id;
private String commentId;
private String comment_url;
...
}

这是 <select>映射器中的内容:

<select id="getToyCommentList"
resultType="com.domain.ToyComment">
c.id, c.content,p.user_photo_url userPhoto
from t_comment c left join t_comment_photo p
on c.id = p.comment_id
</select>

当我尝试将从表 t_comment_photo 查询的 userPhoto 映射到 java 类 ToyComment 内的列表元素时,出现错误。

我试图修复的 resultMap 是:

<resultMap id="ToyCommentResultMap" type="com.domain.ToyComment">
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="content" jdbcType="VARCHAR" property="content" />
<!-- <result property="urls" jdbcType="VARCHAR" javaType="java.util.ArrayList" column="userPhoto" /> -->
<collection property="urls" javaType="list" jdbcType="VARCHAR" column="userPhoto"></collection>
</resultMap>

我都尝试了<property><collection> ,但两者都不起作用。

当我使用<collection>时,当我使用 <result> 时,出现“映射语句集合已包含 com.toy.mapper.ToyCommentMapper.getToyCommentListByToyId 的值”错误,我得到“没有找到属性 userPhotos 的类型处理程序”。对 javaType 使用“java.util.ArrayList”或“list”不会更改输出错误。

我尝试搜索“mybatis map to string list”,但大多数都是关于映射到对象列表。

如何正确修复?

最佳答案

结果图应如下所示:

<resultMap id="ToyCommentResultMap" type="com.domain.ToyComment">
<id column="id" property="id" />
<result column="content" property="content" />
<collection property="urls" javaType="list"
ofType="string">
<result column="userPhoto" />
</collection>
</resultMap>

一些注意事项:

  • 指定<id />当使用<collection />时。它提高了效率,并且在某些情况下是必需的。
  • <select /> ,您需要指定 resultMap而不是resultType (显然)。
  • 这是一个棘手的案例,我们添加了 FAQ entry就在最近。

关于java - Mybatis 如何将另一个表中的列映射到字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com