派生类的Hibernate映射没有字段

时间:2017-02-06 11:34:04

标签: java xml hibernate inheritance

我遇到过这种情况,当我需要两个类有相同的字段,但行为略有不同,其中一个拥有一些其他字段,但另一个没有,所以问题是:我是否必须映射派生类没有特殊领域? 这里的示例,假设我有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映射

1 个答案:

答案 0 :(得分:1)

如果您希望Hibernate将List<A>作为查询结果返回给您,是的,您需要映射A