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

将对象集映射到字符串集

韩安顺
2023-03-14

我是Mapstruct的新手。我有一个Word对象,它包含一个字符串值和一组它自己,我想把它映射到WordDTO,它包含一个值和一组字符串值。我不知道怎么做。正如我在注释中所说,mapstruct不能映射两个对象是有道理的,但如果它有帮助,我将错误放在下面:错误:(20,13)java:cant不能映射属性“java.util.set 同义词”到“java.util.set 同义词”。考虑声明/实现一个映射方法:“java.util.set map(java.util.set value)”

public class Word {
    private String wordValue;
    private Set<Word> synonyms;
}
public class WordDTO {
    private String wordValue;
    private Set<String> synonyms;
}

我为映射实现了这个接口:

@Mapper
public interface WordMapper {
    WordMapper INSTANCE= Mappers.getMapper(WordMapper.class);

    WordDTO wordToWordDTO(Word word);
    Word wordDTOToWord(WordDTO wordDTO);
}

谢谢你的帮助。

共有1个答案

凤伟泽
2023-03-14

Mapstruct抱怨无法将Word转换为String。您必须明确地告诉映射器如何执行该操作。

下面是一个例子:


@Mapper
public interface WordMapper {
    WordMapper INSTANCE= Mappers.getMapper(WordMapper.class);

    WordDTO wordToWordDTO(Word word);
    Word wordDTOToWord(WordDTO wordDTO);

    // Map String to Word
    @Mapping(source = "value", target = "wordValue")
    Word stringToWord(String value)

    // Map Word to string
    default String wordToString(Word word) {
      return (word == null) ? null : word.getWordValue();
    }
   
}
 类似资料:
  • 我正试图利用谷歌电子表格(谷歌脚本)中的地图功能,使用API从Bittrex获取我的帐户硬币余额。这是我的JSON对象: 理想情况下,我希望根据结果中的键和使用每个对象数据的基础行自动填充标题行。我看到了spme解决方案如何为每种或更复杂的方式使用。但我想这可以通过映射来实现。下面是我如何映射顶行,但不知道如何映射值: 谷歌电子表格中的预期输出为

  • 问题内容: 我有一个JSON响应,我需要将对应的JSON字符串映射到特定的Response类,是否有任何工具或框架可以做到这一点。 响应类为: Json响应字符串为{“ 0”:{“ 0”:“ Rockey”,“ 1”:“ John”}} 我将Apache CXF Framework与Jettison一起使用,因为JSON Provider还使用JAXB将数据连接到低带宽客户端。 请注意,我要将数字

  • 我有一个字符串格式的JSON值,如下所示。 现在,如果我试着按如下方式映射它,它会工作并且映射得很好。 但是我想将其映射到自定义数据类,如下所示。 当我这样做时,vo的结果是null。 有关数据类的结构,请参阅以下内容。 请告诉我我做错了什么。谢谢

  • 我有一个用户类,有16个属性,比如名字,姓氏,出生日期,用户名,密码等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每一列映射回用户属性,但我这样做的效率似乎非常低。例如,我正在做: 也就是说,我检索所有的列,然后通过将所有的列值插入用户构造函数来创建用户对象。 有人知道更快、更整洁的方法吗?

  • 在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗