Como misturar estratégias de herança com anotações JPA e Hibernate?

De acordo comDocumentação de referência do Hibernate deve ser possível combinar diferentes estratégias de mapeamento de herança ao usar os metadados XML do Hibernate:
http://docs.jboss.org/hibernate/stable/core/reference/en/html/inheritance.html#inheritance-mixing-tableperclass-tablepersubclass

No entanto, a seção correspondente doGuia de referência de anotações de hibernação não cobre isso:
http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#d0e1168

Por outro lado, os JavaDocs sugerem que a combinação de estratégias de herança deve ser possível. Por exemplo, em javax.persistence.DiscriminatorColumn, ele diz:

A estratégia e a coluna discriminadora são especificadas apenas na raiz de uma hierarquia de classes da entidadeou sub-hierarquia em que uma estratégia de herança diferente é aplicado.

A seguir, é apresentado um exemplo do mapeamento que estou tentando obter. Eu gostaria de usartabela por subclasse mapeamento próximo à raiz da hierarquia, mas mude parahierarquia de tabela por classe mapeamento perto das folhas. Aqui está um exemplo de código:

@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...
}

...

O que eu espero deste mapeamento é ter exatamente 3 tabelas:A, BBeCC. AmbosBB eCC deve ter uma coluna discriminadora padrão chamadaDTYPE. Eles também devem fornecer todas as colunas necessárias para todas as propriedades e associações mapeadas de suas respectivas subclasses.

Em vez disso, a hierarquia de classes parece usar o métodotabela por subclasse estratégia de herança por toda parte. I.e. Eu recebo uma tabela própria para cada uma das entidades mencionadas acima. Eu gostaria de evitar isso, já que as folhas da hierarquia de classes são extremamente leves e parece exagero ter uma tabela separada para cada uma delas!

Eu esqueci alguma coisa? Qualquer conselho é altamente apreciado! Ficarei feliz em fornecer informações adicionais ...

questionAnswers(2)

yourAnswerToTheQuestion