10
respostas

Estrutura para fichas técnicas

Eu preciso cadastrar fichas técnicas, e cada ficha técnica possui diversos produtos com diversos atributos!

Preciso de uma luz de como estruturar isso no projeto.

Criei um controller das fichas técnicas que vai armazenar o id, modo de preparo etc ..

Devo criar uma classe produto com os atributos e chamar no controller das fichas?

Img das Fichas Técnicas

10 respostas

Oi Thiago, logo no começo você fala o seguinte "Eu preciso cadastrar fichas técnicas, e cada ficha técnica possui diversos produtos com diversos atributos!", só por esse ponto acredito que você deva criar uma classe, consequentemente uma tabela, para armazenar esses produtos com seus diversos atributos.

Fala Thiago, nesse caso repare que estamos falando de dois objetos até o momento: Fichá Técnica e Produtos.

Logo quando falamos em objetos, devemos ter as classes para representa-los, por tanto, em seu sistema, para começar vai ter que conter as classes: FichaTenica e Produto, onde dentro de FichaTecnica irá contér uma lista de produtos.

Sobre os controllers, geralmente(não sempre) para cada modelo de negócio possuímos um controller, no seu caso, iremos ter dois controllers: FichaTecnicaController e ProdutoController, um para cada modelo.

Obs: Lembrando que isso seria apenas o básico, um exemplo real pode ser bem mais complexo, pois dentro do produto pode haver classes, dentro de classes pode haver grupos, etc...

Espero ter ajudado.

Fala gente, obrigado pelas resposta.

Vamos lá.

Eu sabia isso mais ou menos, e criei tanto os modelos quanto os controllers.

No modelo da Ficha eu coloquei assim:

@Entity
public class Ficha {

//anotações, getters e setters omitidos
    private int id;
    private String nome;
    private String preparo;

    @ManyToOne
    private Produto produto;

e no modelo do produto eu deixei assim:

@Entity
public class Produto {

//anotações, getters e setters omitidos
    private int id;
    private String nome;
    private int pl;
    private int pb;
    private int fc;

Feito isso eu consigo chama os atributos do produto nas fichas?

Jogando para ficha.produto. nome, ficha.produto. pl, ficha.produto. pb, etc..

Sim, exatamente Thiago.

Mas quando eu abro o banco ele só puxa o id do produto, os outros atributos não vem.

https://drive.google.com/open?id=1O9PiZEYIFMuZTtmUQL_2-d5bumpdykqm

Então Thiago, você chegou a cadastrar algum produto? Na sua ficha o seu ID produto está nulo, ele deve conter o id do produto que estará na tabela de produto.

Porém para você fazer um select e vier a informação da ficha juntamente com o produto, você terá que fazer um join entre as tabelas.

Eu acho que entendi.

Vou te explicar o que eu estava pensando em fazer.

Em uma tela eu cadastro o nome da ficha técnica, ao cadastrar ela joga pra outra página, já passando o id da ficha, para ser feita a incrementação dos produtos, nessa página deveria ser possível cadastrar vários produtos de uma só vez, ou de alguma forma melhor não sei bem ...

Tem que ver certinho como você esta fazendo, o primeiro passo seria configurar um DDL para criar as tabelas de acordo a seus modelos ou você pode cria-las manualmente com um script.

Feito isso, deve-se ver se você esta fazendo o insert de todos os campos, para isso, após inserir o produto, realize um select no banco:

select * from TABELA_DE_PRODUTOS

Se tudo estiver la, devemos dar uma olhada na aplicação, o que eu notei foi que falta algumas configurações da JPA no seus modelos, por exemplo: @Table.

Espero ter ajudado

Eu uso o hibernate.

Eu já vi que deve ser usado essa anotação, mas nunca usei, nem sei como usar, sabe me dizer se tem algum curso aqui que trata essas anotações ?

Seria a mesma coisa, tem os cursos que você pode realizar:

São ótimos cursos