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

MapStruct需要Impl类

淳于哲
2023-03-14

我还有下一节课:

映射器

public interface DeviceTokensMapper {

    DeviceTokensMapper INSTANCE = Mappers.getMapper(DeviceTokensMapper.class);

    @Mappings({
            @Mapping(source = "tokenName", target = "tokenName"),
            @Mapping(source = "userOsType", target = "osType"),
    })

    DeviceTokensDTO toDeviceTokensDTO(DeviceTokens deviceTokens);
}
@Entity
public class DeviceTokens {

    @Id
    @Column(name="token_name", nullable = false)
    private String tokenName;

    @Column(name = "os", nullable = false)
    @Enumerated
    private UserOSType userOsType;

    public DeviceTokens() {}

    public DeviceTokens(String tokenName, UserOSType userOSType) {
        this.tokenName = tokenName;
        this.userOsType = userOSType;
    }

    public String getTokenName() {
        return tokenName;
    }

    public void setTokenName(String tokenName) {
        this.tokenName = tokenName;
    }

    public UserOSType getUserOsType() {
        return userOsType;
    }

    public void setUserOsType(UserOSType userOsType) {
        this.userOsType = userOsType;
    }
}
public class DeviceTokensDTO {

    private String tokenName;

    private UserOSType osType;

    public DeviceTokensDTO() {}

    public DeviceTokensDTO(String tokenName, UserOSType osType) {
        this.tokenName = tokenName;
        this.osType = osType;
    }

    public UserOSType getOsType() {
        return osType;
    }

    public void setOsType(UserOSType osType) {
        this.osType = osType;
    }

    public String getTokenName() {
        return tokenName;
    }

    public void setTokenName(String tokenName) {
        this.tokenName = tokenName;
    }
}
@Transactional
public DeviceTokensDTO storeToken(String tokenId, UserOSType userOsType) {
    DeviceTokens deviceTokens = new DeviceTokens(tokenId, userOsType);
    DeviceTokens newDevice = deviceTokensRepository.save(deviceTokens);

    return DeviceTokensMapper.INSTANCE.toDeviceTokensDTO(newDevice);
}

那么为什么映射器需要实现类呢?能请人指点一下吗?谢了。

共有1个答案

伊铭
2023-03-14

如果使用maven,则需要添加mapstruct-processor依赖关系,如下所示:

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-jdk8</artifactId>
    <version>1.2.0.Final</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.2.0.Final</version>
</dependency>
 类似资料:
  • 我有以下测试: 你能给出解决这个问题的最佳方法吗?我在MapStruct 1.3.1上。决赛

  • 当我阅读mapstruct文档时,他们说:mapstruct是一个Java注释处理器,用于生成类型安全的bean映射类。 https://mapstruct.org/documentation/stable/reference/html/#introduction 这就剩下我的任务了。为什么我需要mapstruct?Jhipster使用它,我不知道他们为什么首先需要它?为什么你需要Jhipster

  • Im试图使用MapStruct映射具有嵌套对象并需要外部变量的对象。 源->target映射是有损的,并且需要外部字符串 它告诉我要实现一个不可行的映射方法(因为它将构造一个部分的对象),该对象将在调用期间失败。 有没有办法使用MapStruct来解决这个问题,或者我只是实现我自己的映射器?

  • 本文向大家介绍Rust Impl块,包括了Rust Impl块的使用技巧和注意事项,需要的朋友参考一下 示例 这指定Type具有生命周期'a,并且由于结束不再存在,由返回的引用my_function()在'a结束后可能不再有效。Typeself.x

  • 问题内容: 我正在尝试运行此处给出的示例图块示例。 以下是我的POM.xml: 当我尝试运行示例时,抛出以下错误: 任何想法? 为此,我花了30分钟的时间进行谷歌搜索,但找不到可能的解决方案。 请帮我… 问题答案: 您已经包括了对SLF4J API的依赖关系,这是您在应用程序中用于日志记录的内容,但是您还必须包括一个实现实际日志记录功能的实现。 例如,要通过Log4J登录,您可以添加以下依赖项:

  • 我使用了Moxy的。 在应用程序的其他地方,我需要XSLT2.0,所以我在类路径中包含了Saxon HA9.5。但这导致了XPath失败(找不到节点,与JDK的实现不同)。 如何为MOXy设置要使用哪个XML/XPath impl? 目前,我在JAXB bean的旁边使用,但我可以使用一些工厂选项或类似的方式创建封送器。 附加问题:我认为XPath的问题是XML文件使用了名称空间, 我如何使Sax