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

为映射属性(java.util.Map和java.util.Object)找到了不明确的映射方法

郁景龙
2023-03-14

我正在使用mapstruct从一个DTO映射到另一个DTO。我有多个默认方法,但其中2个返回值为String,并且使用相同的类作为输入参数,这给我带来了“使用java MapStruct的模糊映射方法”错误。

public class Action implements Serializable {

    [...]

    private String statusHistory;

    [...]

    private String propertiesOriginal;
    private String propertiesEdited;

    // Setter, Getter, ecc..
}
public class ActionDTO implements Serializable {

    ...
    private Map<String, Integer> statusHistory  = new HashMap<>();

    ...
    private Object propertiesOriginal;
    private Object propertiesEdited;

    // Setter, Getter, ecc..
}
@Mapper(componentModel = "spring", uses = {})
public interface ActionMapper extends EntityMapper<ActionDTO, Action> {

    default Map toMap(String text) throws IOException {
        Map map = new HashMap();
        try{
            map = new ObjectMapper().readValue(text, new TypeReference<Map<String, Integer>>(){});
        } catch (IOException e){
            e.printStackTrace();
        }
        return map;
    }

    default String fromMap(Map map){
        return new JSONObject(map).toString();
    }

[...]

    default Object toObject(String text) throws IOException {
        return new ObjectMapper().readValue(text, Object.class);
    }

    default String fromObject(Object object) throws IOException {
        return new ObjectMapper().convertValue(object, String.class);
    }
[...]
}

错误:(16,7)Java:在将属性“java.lang.String StatusHistory”映射到java.util.Map:java.util.Map toMap(java.lang.String text)和java.lang.Object to Object(java.lang.String text)时发现了不明确的映射方法。

共有1个答案

庄阿苏
2023-03-14

这两个方法都限定Object和Map。但是,您可以选择要使用的正确结果类型。查看@BeanMapping#ResultType。

 类似资料:
  • 我正在使用mapstruct从一个DTO映射到另一个DTO。我有多个默认方法,但其中两个返回值为String,并且使用了与输入参数相同的类,这给了我“使用java MapStruct的mapping methods不明确”的错误。我在这里添加代码的相关部分: 错误是 发现将属性“Program ProgramInstance”映射到java.lang.String的映射方法不明确:java.lan

  • 我有两种将实体映射到域的方法。 当我试图定义实体列表到域的映射方法时,我发现了用于映射集合元素的模糊映射方法。 有没有一种方法可以定义用于映射对象集合的方法

  • 我有这个“创建”方法来映射/列出帖子请愿。我创建了一个重载的方法“createEmpty()”,以便进行尝试,但后来删除了它,因为它抛出了一个org.springFramework.beans.factory.BeanCreationException来处理不明确的映射。 问题是我删除了said方法后,仍然得到了异常。 信息:Dev App Server现在正在运行5月04日4:21:34 PM

  • 太多错误了... 由:java.lang.IllegalStateException引起:发现了不明确的映射。无法将“Position WS”bean方法public java.util.list by.ipps.accounting.ws.positionws.getEmployeePost(java.lang.long)映射到{[/positionlistjson/{id}]、methods=

  • 问题内容: 早上好,我正在处理一个模棱两可的映射,我无法解码…我正在使用Spring mvc 4.0.6和hibernate 4.3.6在tomcat中发动战争时遇到此错误: 我不明白为什么我会收到此错误。AppController很直 ClientService.java 在我看来,这一切都是很直接的……对于这种应用程序,我还是一个新手。 问题答案: 这是您收到的错误消息: 找到模糊的映射。无法

  • 我还在学习ReactJS。我正在挑战自己写一个非常基本的待办事项应用程序(就像一个人一样),我有一个问题,调用onhtml函数。 这里的问题是不能调用,因为它不在render函数的返回调用中 要从map函数内部访问handleClick,我需要做什么?