java-MapStruct无法在mapper函数中映射基类中的字段
我有一个基本dto和一个扩展它的dtojava-MapStruct无法在mapper函数中映射基类中的字段,java,mapstruct,Java,Mapstruct,我有一个基本dto和一个扩展它的dto public abstract class AbstractItem { private String upc; private String quantity; //getter and setter for upc and quantity } public class OrderedItem extends AbstractItem { private String orderId; // getter
public abstract class AbstractItem {
private String upc;
private String quantity;
//getter and setter for upc and quantity
}
public class OrderedItem extends AbstractItem {
private String orderId;
// getter and setter for orderId
}
然后我有一个模态,我想从OrderedItem转换它。此模态扩展了基本模态
public abstract class AbstractModal {
private String qty;
public void setQty(String qty) {
this.qty = qty;
}
public String getQty() {
return qty;
}
}
public class ItemModal extends AbstractModal {
private String orderNbr;
private String upcNbr;
// getter and setter for orderNbr and upcNbr;
}
这是使用Mapstruct的映射器函数
@Mapper
public interface DtoMapper {
@Mappings({
@Mapping(source = "orderedItem.orderId" target = "orderNbr"),
@Mapping(source = "orderedItem.upc" target = "upcNbr"),
@Mapping(source = "orderedItem.quantity" target = "qty")
})
ItemModal convert(OrderedItem orderedItem);
}
在编译期间,我在result type test.modal.ItemModal中得到一个错误未知属性“qty”。
Mapstruct是否支持基类的映射字段?
如果是,你能告诉我我的代码有什么问题吗?
我正在使用Java8和MapStruct1.2.0
编辑:在
AbstractModal
中为qty
添加了getter和setter,我不确定以前是否有人问过这个问题。我找不到类似的问题Yes MapStruct支持此功能。我试过了,效果很好。您可以在AbstractModal
中共享数量的setter吗?不必在@映射中使用orderedItem.upc
。您可以在AbstractModal
中使用upc
@Filip为qty
添加了getter和setter,谢谢,这很奇怪,因为它应该可以工作。我还用这些类创建了一个项目,它可以正常工作。你能告诉我你在哪一个地方吗?此外,如果你能创建一个完整的复制项目,我们将能够修复它。