gpt4 book ai didi

java - MapStruct/Java - 将时间戳转换为即时

转载 作者:行者123 更新时间:2023-12-02 16:56:02 30 4
gpt4 key购买 nike

我有这个映射器,我想将实体转换为 DTO。我的实体包含变量 createdDate,它是一个 Instant,我的 DTO 包含 commentedDate,它是一个时间戳。

我不知道如何使用 MapStruct 将 Instant 自动转换为时间戳。

public interface BlogMapper {
@Mappings({
@Mapping(target = "userId", source = "user.id"),
@Mapping(target = "commentedDate", source = "createdDate")
})
BlogDto entityToDto(final Comment entity);
}

感谢您的帮助:)

最佳答案

这个问题真的很像Mapstruct LocalDateTime to Instant .唯一的区别是这要求在 TimestampInstant 之间进行转换。

实现这一目标的最佳方法是提供自定义映射方法。例如:

@Mapper
public interface BlogMapper {

@Mapping(target = "userId", source = "user.id"),
@Mapping(target = "commentedDate", source = "createdDate")
BlogDto entityToDto(final Comment entity);

default Timestamp map(Instant instant) {
return instant == null ? null : Timestamp.from(instant);
}
}

使用此所有 Instant(s) 将被映射到 Timestamp。您还可以将该方法提取到静态 util 类中,然后通过 Mapper#uses

使用它

关于java - MapStruct/Java - 将时间戳转换为即时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392296/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com