Как смешать стратегии наследования с аннотациями JPA и Hibernate?

СогласноСправочная документация Hibernate при использовании XML-метаданных Hibernate должна быть возможность смешивать разные стратегии отображения наследования:
http://docs.jboss.org/hibernate/stable/core/reference/en/html/inheritance.html#inheritance-mixing-tableperclass-tablepersubclass

Тем не менее, соответствующий разделСправочное руководство по аннотациям в спящем режиме не распространяется на это:
http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#d0e1168

С другой стороны, JavaDocs предполагают, что смешивание стратегий наследования должно быть возможным. Например, в javax.persistence.DiscriminatorColumn это говорит:

Стратегия и столбец дискриминатора указываются только в корне иерархии классов сущностей.или иерархия, в которой другая стратегия наследования применены.

Ниже приведен пример сопоставления, которого я пытаюсь достичь. Я хотел бы использоватьтаблица на подкласс отображение около корня иерархии, но измените наТаблица-за классовой иерархии картирование возле листьев. Вот пример кода:

@Entity
@Inheritance( strategy = InheritanceType.JOINED )
public abstract class A implements Serializable
{
    @Id
    private String id;

    // other mapped properties...
}

@Entity
@Inheritance( strategy = InheritanceType.SINGLE_TABLE )
public class BB extends A
{
    // other mapped properties and associations...
}

@Entity
public class BB1 extends BB
{
    // other stuff, not necessarily mapped...
}

@Entity
public class BB2 extends BB
{
    // other stuff, not necessarily mapped...
}

@Entity
@Inheritance( strategy = InheritanceType.SINGLE_TABLE )
public class CC extends A
{
    // other mapped properties and associations...
}

@Entity
public class CC1 extends CC
{
    // other stuff, not necessarily mapped...
}

...

То, что я ожидаю от этого отображения, имеет ровно 3 таблицы:A, BB, а такжеCC, И то и другоеBB а такжеCC должен иметь столбец дискриминатора по умолчаниюDTYPE, Они также должны предоставлять все столбцы, необходимые для всех сопоставленных свойств и ассоциаций их соответствующих подклассов.

Вместо этого иерархия классов, кажется, используеттаблица на подкласс стратегия наследования во всем. То есть Я получаю собственную таблицу для каждой из сущностей, упомянутых выше. Я бы хотел этого избежать, так как листья иерархии классов чрезвычайно легки и кажется просто излишним иметь отдельную таблицу для каждого из них!

Я что-то упустил? Любой совет высоко ценится! Я буду рад предоставить дополнительную информацию ...

Ответы на вопрос(2)

Ваш ответ на вопрос