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

Mapstruct问题:未知属性错误

巫马刚洁
2023-03-14

我在一起使用mapstruct和lombok时遇到了一些问题:

EntityMapper.java:10: error: Unknown property "id" in result type Entity. Did you mean "null"?
    @Mapping(target = "id", ignore = true)
                      ^

我的实体和实体类:

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Entity {

    private int id;

    private String property;
}

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class EntityDto {

    private String property;
}

EntityMapper:

@Mapper(implementationName = "MapStruct<CLASS_NAME>")
public interface EntityMapper {

    // neither of them work
    @Mapping(target = "id", ignore = true)
    //@Mapping(target = "id", defaultValue = "0")
    Entity map(EntityDto dto);

    EntityDto map(Entity entity);

}

在这种配置中,它会导致编译时错误。所以我试图注释掉@映射注释。它编译了,但它将所有属性映射为空。MapSTRtEntityMapper生成的实现:

public class MapStructEntityMapper implements EntityMapper {
    public MapStructEntityMapper() {
    }

    public Entity map(EntityDto dto) {
        if (dto == null) {
            return null;
        } else {
            Entity entity = new Entity();
            return entity;
        }
    }

    public EntityDto map(Entity entity) {
        if (entity == null) {
            return null;
        } else {
            EntityDto entityDto = new EntityDto();
            return entityDto;
        }
    }
}

我找到了几个关于注释处理器的答案,但看看我的构建。gradle文件:

// MapStruct - Entity-DTO mapper                             
implementation 'org.mapstruct:mapstruct:1.4.1.Final'         
annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.1.
compile 'org.projectlombok:lombok-mapstruct-binding:0.1.0'   
// Util                                                      
// lombok                                                    
compileOnly 'org.projectlombok:lombok:1.18.16'               
annotationProcessor 'org.projectlombok:lombok:1.18.16'       
testCompileOnly 'org.projectlombok:lombok:1.18.16'           
testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'   

如果我编译时不使用@Mapping注解,然后使用这个注解运行,有时它会起作用,但现在即使这样也不起作用。

共有1个答案

曹涵润
2023-03-14

这似乎是lombok mapstruct绑定的问题。

这应该与处理器在相同的范围内。您需要将其放在annotationProcess下,而不是compile

 类似资料:
  • 我在使用: null null 令人惊讶的是,但是toModel方法工作得很好,编译后,我在生成的源代码中看到了下面的内容: 我不知道如何修复这个映射问题。有人能帮忙吗? 下面是我的映射器:

  • 我有一个相当简单的映射器 我的域类: 我的DTO类: 我在mvn干净安装上收到的错误: [错误]/C:/code报告/work/github/symphony票证/src/main/java/com/ticket/mappers/TicketLocationDetailsMapper。java:[33,48]结果类型TicketLocationDetails中的未知属性“locationId”。你

  • 我正在使用和,在属性映射期间我遇到了这个错误,我该如何修复它? 她的是我的 这里有一个Screenshottenter图像描述

  • 未知问题 未知问题记录机器人没能回答的用户问题,用户可以进行批量操作,还可以为这些问题配置成业务问答,提高机器人问题回答率。 如下图可以讲未知问题配置成业务问答:

  • 问题内容: 使用@jit装饰器运行代码时出现错误。似乎无法找到函数scipy.special.gammainc()的某些信息: 没有@jit装饰器,代码将正常运行。也许需要一些使scipy.special模块的属性对Numba可见的东西? 在此先感谢您的任何建议,评论等。 问题答案: 问题在于这不是Numba固有的一小部分函数(请参阅http://numba.pydata.org/numba- d

  • 我的代码: 我的错误: 回溯(最近一次调用last):文件“C:\Users\weqwwg\Desktop\python\Game.py”,第77行,在driver.manage().timeouts()中。隐式等待(10,时间单位:秒);AttributeError:“WebDriver”对象没有属性“manage” 我正在尝试向youtube上的评论框发送密钥。我删除了一些代码,我目前正在运行