Por que o Eclipselink está adicionando a coluna discriminadora para a estratégia de herança unida?

StackOverflow https://stackoverflow.com/questions/2063515

  •  20-09-2019
  •  | 
  •  

Pergunta

Estou usando a estratégia de herança unida com a implementação do Eclipselink JPA. Percebi que o Eclipselink está adicionando a coluna discriminador, nomeada pelo padrão DTYPE, ao esquema do banco de dados. Eu entendo que o discriminador é necessário para uma estratégia de herança de tabela, mas por que para a estratégia ingressada?

O Eclipselink precisa desta coluna porque tenho erros depois de removê -la. Esta coluna é adicionada por razões de desempenho, etc? Não estou particularmente feliz com isso, pois, do ponto de vista do esquema de banco de dados, esta coluna é apenas uma desordem desnecessária.

O JPA baseado em hibernato não faz nada semelhante.

Foi útil?

Solução

A partir de Ingeriu a herança da mesa:

Na herança da tabela unida, cada classe compartilha dados da tabela raiz. Além disso, cada subclasse define sua própria tabela que adiciona seu estado estendido. O exemplo a seguir mostra duas tabelas, Project e L_Project, bem como duas classes, Project e LargeProject:

...

A coluna Discriminador é o que determina o tipo e, portanto, o que ingressou na tabela para usar, para que você precise de uma coluna discriminador na tabela pai.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top