2
respostas

Problemas em fazer entidades para um site de produtos diversos

Oi pessoal,

Depois que estudei SpringBoot e bootstrap eu comecei a desenvolver um site parecido com o do curso de SpringMVC usando SpringBoot, mas invés de ter só livros pra compras, estou tentando fazer produtos variados.

Com isso, na hora de criar minhas entidades fiquei com dúvidas. Pensei em criar uma entidade abstrata Produtos com as informações que são compartilhadas entre os produtos e as classes específicas que herdam dela, como Camisa, por exemplo, e lá colocar só a marca, tamanho e coisas relacionadas só a uma camisa.

Pensei em algo assim:

@Entity
public abstract class Produto {

    @Id @GeneratedValue (strategy=GenerationType.IDENTITY)
    private int codigo;
    private String descricao;
    private int estoque;
    private double preco;
    private Camisa tipoProduto;


public class Camisa extends Produto {

    private String marca;
    private String tamanho;
    private TipoCamisa tipoCamisa;

O negócio é que não sei se isso é possível e se, na verdade, eu tenha q criar uma entidade de Produtos com todas informações de todos produtos e coloco na página de cadastros só as opções que cabem ao tipo de produto que a pessoa quiser cadastrar, ou se tem forma melhor.

Tem como alguém dar uma luz a respeito?

2 respostas

Ninguém?

Oi Guilherme, tudo bem? A própria documentação possui um exemplo de como fazer algo nessa linha: https://docs.spring.io/spring-data/jpa/docs/2.3.4.RELEASE/reference/html/#jpa.query.spel-expressions

Há também, até onde pesquisei, a anotações que trazem facilidades diretamente ligadas a isso, esse blogpost em inglês tem um exemplo legal: https://thorben-janssen.com/complete-guide-inheritance-strategies-jpa-hibernate/#:~:text=Inheritance%20is%20one%20of%20the%20key%20concepts%20in,has%20to%20map%20it%20to%20a%20supported%20concept.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software