VRaptor + Pattern

3 respostas
S

Boa tarde Pessoal.

Estou retomando um Projeto meu antigo, que neste momento está com prazo bem curto para a primeira entrega. A situação é a seguinte:

Preciso definir uma implementação para Produtos, estes Produtos são bem distintos entre si, por exemplo: Carros, Imóveis, Empresas…

Eu poderia criar uma tabela para um dos Produtos, mas isso seria custoso para mater futuramente.

Alguém tem alguma dica, não precisa ser necessariamente um Pattern, para o meu caso ?

Eu estou usando: VRaptor + Hibernate + TomCat + MySql

3 Respostas

Rafael_Guerreiro

Por que você não cria um Enum que define o tipo do produto:

public enum TipoProduto {
   CARROS, IMOVEIS, EMPRESAS;
}
lazaropj

Rafael Guerreiro:
Por que você não cria um Enum que define o tipo do produto:

public enum TipoProduto { CARROS, IMOVEIS, EMPRESAS; }

O Enum é uma boa… mas mesmo assim, a tabela ficaria meio q gigante…
E um monte de campos não utilizados para determinados produtos…

Acho melhor vc ter várias tabelas mesmo… Assim fica mais fácil dar manutenção…

Mas deve ter algo mais fácil…

Lucas_Cavalcanti

ou vc pode usar um banco de dados não relacional, como o MongoDB… daí os dados podem ser de qqer jeito…

se quiser continuar com o banco relacional, tente evitar herança, principalmente pq os dados são mto diferentes e o mapeamento de herança no banco é muito ruim…

vc pode fazer composição + interface:

@Entity
class Produto {
    //dados que tem em todo mundo
}

@Entity
class Carro implements EspecializacaoProduto{

    @OneToOne
    Produto produto;
    //dados só do carro

    //getProduto
}
//mesma coisa pros outros

se vc precisar se referir do outro lado dá pra usar relacionamentos polimórficos, ou usar daos, se for simples

Criado 30 de julho de 2012
Ultima resposta 30 de jul. de 2012
Respostas 3
Participantes 4