我希望在类的层次结构中的许多方法上使用mapstruct,但是我需要一些更高层次的抽象方法不被mapstruct自动映射,因为它们将在子类中具有完整的实现。在mapstruct文档中是否缺少对此的注释?
//I did not place @Mapper here because there are no methods to create maps for in this class
public abstract class SuperParentMapper {
//declaration I want mapstruct to ignore
public abstract Hoopdy hangdyToHoopdy(Hangdy hangdy);
}
@Mapper(componentModel = "cdi")
public abstract class NextParentMapper extends SuperParentMapper {
//declaration I also want mapstruct to ignore
@Override
public abstract Hoopdy hangdyToHoopdy(Hangdy hangdy);
//There are some other methods in here that I do need mapstruct to implement
}
@Mapper(componentModel = "cdi")
public abstract class DatChildMapper extends NextParentMapper {
@Override
public Hoopdy hangdyToHoopdy(Hangdy hangdy){
//actual implementation
}
//There are some other methods in here that I do need mapstruct to implement
}
我希望子类成为实际的实现,但是mapstruct似乎试图为这些父类自动创建代码。我敢肯定我缺少明显的东西,但是我似乎无法仅仅使用子实现来得到它。在提到之前,我确实需要这些父类具有抽象方法,以便我可以移交父类并从它们中访问这些方法。
答案 0 :(得分:0)
对于可能会犯与我相同的错误的任何人,请勿将@Mapper放在中级父类上。这就是问题所在。当我拿出它时,它产生的很好。