我遇到过这种情况,当我需要两个类有相同的字段,但行为略有不同,其中一个拥有一些其他字段,但另一个没有,所以问题是:我是否必须映射派生类没有特殊领域? 这里的示例,假设我有A类,B类,都必须有一些集合(例如C对象)和其他一些字段D,所以我创建抽象类AB,它是它们的父类,而类B也有字符串字段,类A - 没有,并且它们都是M的后代,它们有someMethod():
abstract class M {
//fields, getters, etc
public void someMethod(){
//doSmth
}
}
abstract class AB extends M {
private D d;
private Set<C> cs;
//getters, setters, etc
}
class A extends AB{
@Override
public void someMethod(){
for(C c : cs){
//doSmth
}
}
}
class B extends AB {
private String text;
//getters etc
}
所以,我绝对应该映射M,AB和B,但我应该映射A?
P.S。我们使用xml映射
答案 0 :(得分:1)
如果您希望Hibernate将List<A>
作为查询结果返回给您,是的,您需要映射A
。