当前位置: 首页 > 知识库问答 >
问题:

地图结构 - 映射嵌套列表

邹俊豪
2023-03-14

如何使用MapStruct映射嵌套列表?

下面是我的实体类:

public class ChannelEntity {

    @ElementCollection(fetch = FetchType.EAGER)
    @CollectionTable
    List<String> loggedUsers = new ArrayList<>();
...

}

我想把它映射到:

public class Channel {
    
     List<String> loggedUsers = new ArrayList<>();
...
}

现在,我的映射器看起来像:

@Mapper(componentModel = "cdi")
public interface JpaPersistenceChannelMapper {

    ChannelEntity toEntity(Channel channel);
    Channel toDomain(ChannelEntity channelEntity);
}

但它只映射“普通”属性,如Long、intger等,但它避免了嵌套列表。

共有1个答案

水恩
2023-03-14

我发现了一个问题。我需要在两个类中都有 getter 和 setter。

 类似资料:
  • 当尝试使用@Data和@Builder映射嵌套对象时,mapStruct会抛出以下错误:“在目标类型中找不到属性“profile”的读取访问器。” 为简单起见,使用Lombok简化模型 前两个映射按预期工作,但当尝试将两者结合起来时,会在编译时引发以下错误“在目标类型中的属性“配置文件”中找不到读取访问器。” 如果有人能在这件事上帮我,我会非常感激。 谢谢, 乔纳森。

  • 我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)

  • 我尝试使用MapStruct编写映射器类,如下所示: 目前它显示了“未知属性”“customer.customerid”和“usertypes.usertype.userid”等错误。有人能帮我用MapStruct映射所有这些元素吗? 问题2:我们如何绘制跟踪图?1)customerId usertypes->user->userid 2)pdtPrice offers->OffersType->

  • 我用下面的方法尝试了嵌套映射。 我在声明“root_cause”时出错:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[type:nested]。” 感谢您的帮助。

  • 我如何在下面的场景中使用Mapstruct进行bean映射。 现在我想把sourceId映射到targetId,courseName映射到subjectName,studentName映射到memberName(list到list)。

  • 我正在尝试映射我的遗留API对象(我无法更改它),该对象具有嵌套的原始类型属性。列表的元素与DTO列表的元素不兼容,应显式映射为嵌套。不幸的是,MapStruct似乎认为原始与所有类型化列表兼容,并忽略了我试图指定的任何映射,而生成的代码不能正常工作,随后在序列化程序的某个地方产生错误。 我的API对象具有嵌套的原始类型列表: 我的DTO对象具有DTO值类型元素的泛型类型列表: ...但MapSt