【发布时间】:2014-01-27 10:09:15
【问题描述】:
我是推土机新手,我正在尝试为 ClassA 和 ClassB 创建地图
public class ClassA {
ClassC c;
public ClassC getC() {
return c;
}
public void setC(ClassC c) {
this.c = c;
}
}
public class ClassB {
private String x;
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
}
public abstract class ClassC {
private String x;
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
}
public class ClassD extends ClassC {
}
我尝试了下面的映射
<mapping>
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
<field>
<a>c.x</a>
<b>x</b>
</field>
<mapping>
classC 是一个抽象类,ClassD 是一个具体类。当我映射 A->B 时没有问题,但是当我映射 B->A 时,我得到了 InstantiationException。 我怀疑推土机正在尝试实例化抽象类classC。有什么属性可以告诉推土机使用 ClassD?请帮忙。
[EDIT1] - 添加了完整的类声明。
【问题讨论】:
-
您的课程中有 Getter/Setter 吗?另外,你能提供错误的堆栈跟踪吗?
-
嗨,是的,我有 getter/setter。这是堆栈跟踪的链接pastebin.com/MJ7MMTx0
-
你能提供课程的代码吗?堆栈跟踪提示目的地存在问题。
-
我添加了完整的类定义