Estou trabalhando com um simples projeto Spring Boot usando Thymeleaf, se trata de um cadastro de produtos, como tenho vários tipos de produtos para cadastrar achei interessante criar uma entidade chamada produto e as outras entidades que fosse um tipo de produto estender a entidade produto, ou seja, iria criar uma classe produto e depois criar uma classe chamado cano e ele iria estender produto, porque o cano é um tipo de produto, como vocês podem ver abaixo;
Produto
@Entity
@Table(name = “produto”)
public class Produto {
Cano
@Entity
@Table(name = “cano”)
public class Cano extends Produto implements Serializable{
Exemplo;
O produto precisa ter os atributos que qualquer produto tem que ter, como nome, descrição e valor, então iria criar uma classe chamada Cano e iria somente colocar nessa entidade atributos exclusivos dessa entidade e iria herdar os atributos da classe produto como nome, descrição e valor.
Minha Dúvida!
No ato de submeter o formulário ele cria as tabelas de forma automática, depois que salvei o Cano que é um tipo de produto achei que a aplicação iria criar uma tabela Cano, porém não foi o que aconteceu, mesmo que cano seja um tipo de produto a aplicação criou no banco de dados a tabela produto e não a tabela cano.
Se eu for estender todo tipo de produto da tabela produto vai ficar uma tabela produto extremamente gigantesca, porque eu vou ter que cadastrar no sistema materiais para banheiro, produtos de cozinha,produtos de decoração, ferramentas, materiais de construção, imagina de que tamanho vai ficar a tabela produto?
Eu queria saber que quando aplicação herança em uma aplicação esse procedimento é normal ou isso não é uma boa prática de programação?
Se não for uma boa prática de programação como faço para resolver esse problema?
Estou disponível para tira dúvidas, eu não sei se expliquei de maneira que ficou claro meu problema.