扫码一下
查看教程更方便
mapstruct 允许将常量值映射到属性。
@mapping(target = "target-property", const = "const-value")
打开使用 dateformat 映射章节中更新的项目映射。
使用以下代码更新 carentity.java
carentity.java
package com.jiyik.entity; import java.util.gregoriancalendar; public class carentity { private int id; private double price; private gregoriancalendar manufacturingdate; public int getid() { return id; } public void setid(int id) { this.id = id; } public double getprice() { return price; } public void setprice(double price) { this.price = price; } public gregoriancalendar getmanufacturingdate() { return manufacturingdate; } public void setmanufacturingdate(gregoriancalendar manufacturingdate) { this.manufacturingdate = manufacturingdate; } }
使用以下代码更新 car.java
car.java
package com.jiyik.model; public class car { private int id; private string price; private string manufacturingdate; private string brand; public int getid() { return id; } public void setid(int id) { this.id = id; } public string getprice() { return price; } public void setprice(string price) { this.price = price; } public string getmanufacturingdate() { return manufacturingdate; } public void setmanufacturingdate(string manufacturingdate) { this.manufacturingdate = manufacturingdate; } public string getbrand() { return brand; } public void setbrand(string brand) { this.brand = brand; } }
使用以下代码更新 carmapper.java
carmapper.java
package com.jiyik.mapper; import com.jiyik.entity.carentity; import com.jiyik.model.car; import org.mapstruct.mapper; import org.mapstruct.mapping; @mapper public interface carmapper { @mapping(target = "brand", constant = "bmw") @mapping(source = "price", target = "price", numberformat = "$#.00") @mapping(source = "manufacturingdate", target = "manufacturingdate", dateformat = "dd.mm.yyyy") car getmodelfromentity(carentity carentity); }
使用以下代码更新 carmappertest.java
carmappertest.java
import com.jiyik.entity.carentity; import com.jiyik.mapper.carmapper; import com.jiyik.model.car; import org.junit.test; import org.mapstruct.factory.mappers;
import java.util.gregoriancalendar;
import static org.junit.assert.assertequals;
public class carmappertest { private carmapper carmapper = mappers.getmapper(carmapper.class);
@test public void testentitytomodel() { carentity entity = new carentity(); entity.setprice(345000); entity.setid(1); entity.setmanufacturingdate(new gregoriancalendar(2015, 3, 5)); car model = carmapper.getmodelfromentity(entity); assertequals(model.getprice(), "$345000.00"); assertequals(entity.getid(), model.getid()); assertequals("05.04.2015", model.getmanufacturingdate()); assertequals("bmw", model.getbrand()); }
}
运行以下命令来测试映射。
$ mvn clean test
执行结果如下