我有3门课:A、B和C
还有一些制图员A → B → C
我想创建第三个Map器(A -〉C),它使用前两个Map器。
@Mapper
public abstract class TestMapper {
public abstract B toB(A a);
public abstract C toC(B b);
public abstract C toC(A a); // How to chain existing mapper methods ?
/*
// Expected implementation
public C toC(A a) {
C c = toC(toB(a));
additionalStuff(a, c);
return c;
}
*/
@AfterMapping
protected void additionalStuff(A a, @MappingTarget B b) {
// some mapping logic
}
@AfterMapping
protected void additionalStuff(A a, @MappingTarget C c) {
// some mapping logic
}
}
我不想重写从A到C的Map器,而希望重用现有的Map器,因为从A到B有点复杂(从A到C也是如此),但重用现有的方法将非常简单。
我可以自己编写预期的实现,但我觉得这是一个遗憾。
有什么想法吗?
1条答案
按热度按时间qxgroojn1#
我不认为有这样的功能,但你可以自己做:
BMapper:
联系人:
文件:
向Map器添加定制方法
个人观点:
这可能会有点混乱,所以在a和c之间有一个直接的Map会更好。