![](/img/trans.png)
[英]Override a method in Mapper class or customer mapper or attribute mapping- Spring Boot
[英]Spring Mapping using a custom mapper method
除了日期成員之外,我有兩個具有所有相同成員的對象。 在Obj1.date中是一個java.sql.Date,而Obj2.date是一個long(epoch)。
我需要編寫一個mapper來將obj1映射到obj2。 這就是我試圖做的事情:
@Named("sqlDateToEpoch")
default long sqlDateToEpoch(Date timestamp) throws ParseException {
return myUtils.sqlDateToEpoch(timestamp);
}
@Mapping(source = "date", target = "date", qualifiedByName = "sqlDateToEpoch")
Obj2 toObj2(Obj1 source);
List<Obj2> toRecordList(List<Obj1> source);
但mapperImpl只有自己的日期轉換實現:
if (source.getDate() != null) {
Obj2.setDate(Long.parseLong(source.getDate()));
}
我越來越:
java.lang.NumberFormatException: For input string: "2019-04-02 00:00:00.0"
這種轉換的正確方法是什么?
我認為它不起作用的原因是因為你的source.getDate()
返回一個String
而不是一個java.sql.Date
。 這導致MapStruct使用隱式String
進行long
轉換。
為了解決這個問題,您需要確保source.getDate()
返回java.sql.Date
或添加一個獲取String
並返回Long
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.