首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用List<Object> MapStruct List<String>和Integer字段创建一个List<String>?

如何使用List<Object> MapStruct List<String>和Integer字段创建一个List<String>?
EN

Stack Overflow用户
提问于 2022-08-16 04:51:47
回答 1查看 66关注 0票数 1
代码语言:javascript
运行
复制
public class SurveyAnswerEntity extends BaseEntity {

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
    private int answerId;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "question_id")
    private SurveyQuestionEntity question;

    private String answer;

}

代码语言:javascript
运行
复制
public class SurveyContentModel {
    private String question;
    private List<String> answerList;
}

代码语言:javascript
运行
复制
public interface SurveyAnswerMapper {

    SurveyAnswerMapper MAPPER = Mappers.getMapper(SurveyAnswerMapper.class);

    @Mapping(target = "question.questionId", source = "questionId")
    SurveyAnswerEntity toEntity(String answer, Integer questionId);
    List<SurveyAnswerEntity> toEntityList(List<String> answer, Integer questionId);

}

我有一个列表数组和一个数字。(基于数据库的密钥)

列表中的数据是不同的。但是,它依赖于与DB引用键对应的一个数字。

列表包含oneString、twoString、threeString

数字是独立存在的。

也就是说,把这两者结合起来

你需要创建一个列表。

键:1值: oneString = Entity1

键:1值: twoString = Entity2

键:1值: threeString = Entity3

是这样的。

错误:返回类型列表是一个抽象类或接口。提供非抽象/非接口结果类型或工厂方法。

当我删除questionId时,它工作得很好。也许单个字段不能简单地映射到列表。

如何为所有列表数据创建具有相同整数数据的实体?

EN

回答 1

Stack Overflow用户

发布于 2022-08-19 08:18:41

目前,在MapStruct中没有自动的方法来支持您正在寻找的内容。为了实现这一点,您需要编写一个自定义映射。

不过,您可以做的是使用@Context来帮助自己。

例如:

代码语言:javascript
运行
复制
public interface SurveyAnswerMapper {

    SurveyAnswerMapper MAPPER = Mappers.getMapper(SurveyAnswerMapper.class);

    @Mapping(target = "question.questionId", expression = "java(questionId)")
    @Mapping(target = "answer", source = "answer")
    SurveyAnswerEntity toEntity(String answer, @Context Integer questionId);
    List<SurveyAnswerEntity> toEntityList(List<String> answer, @Context Integer questionId);

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档