Banco de Dados não relacionado vs Hibernate!

7 respostas
nicoweda

Tenho uma duvida que vem me tirando o sono!!!

O cenário é: Um BD com tabelas não relacionadas.
Todas as tabelas foram mapeadas em entidades para o Hibernate.

Agora a duvida… Existe um padrão para que eu possa fazer o relacionamento “na unha” dessas entidades… ??

Não sei se ficou claro o problema…

7 Respostas

Rubem_Azenha

Você não tem colunas que servem como foreing key? Aí não tem jeito, o Hibernate faz mapeamento objeto-relacional, e não milagres :slight_smile:

nicoweda

Rs… é por isso q eu disse que tenho perdido o sono!

A solução q eu encontrei até agora foi criar meus beans e as respectivas DAOs.
Como meus objetos “não se conhecem” eu criei classes que fazem este relacionamento para mim… por exemplo.

@Entity
public class Venda{
    @Id
     Long id;
     //outros atributos

     //getters and setters
}

@Entity
public class ItemVenda{
    @Id
    Long id;
    Long venda_id;
    //outros atributos

    //getters and setters

}

public class PedidoVenda{
    Venda venda;
    List<ItemVenda> itens;
    
    public addItem(ItemVenda item){
         itens.add(item);
         calcularTotalVenda();
    }
}

Isso é um exemplo bem resumido…
Só para dar a ideia do que eu montei…
Alguem tem outra ideia?
Essa classe tá ficando giganteeeeeesca! Vcs não tem deia o quanto!

F

Olá,

O que te impede de gerar os relacionamentos?

Que banco é?

Tu pode modelar essa base legada acrescentando colunas de relacionamento, nao precisa gerar FK é so indicar pro Hibernate quais sao as colunas relacionadas.
Como tu nao vai criar FK efetivamente mas so colunas na base a unica coisa chate de fazer vai ser preencher essas colunas com os valores certos.

]['s

kissdemon

Não seria hora então de parar e rever seu código? Talvez sua classe esteja assumindo responsabilidades demais, que não cabem a ela. Se a classe está ficando muito grande e complicada, talvez seja hora de rever…antes que seja tarde demais e dar manutenção no seu código fique inviável :wink:

[]'s

nicoweda

Primeiramente, obrigado fabgp2001 pela ajuda!

Responendo suas perguntas:

1- Estamos utilizando Oracle e SQL Server
2- Fomos proibidos desde o inico de mexer no BD. Temos que trabalhar com o sistema legado…
3- Como que eu faço esses relacionamento sem as FKs? As colunas que você mencionou já existem no BD.

Grato!

rodrigo.p

Uma pequena sugestão!

nicoweda, pq vc não fez o sistema usando outro banco de dados ou um outro nome database! Ai vc modela de acordo com o q vc precisa. Sistema pronto, vc poe os funcionarios para testar, no final vc insere os dados q vcs usam hj.

Vlw :slight_smile:

nbluis

Por que não implementa FK’s no seu banco de produção.

As vezes a gente não faz questão de mexer para não dar problema, mas os problemas gerados por isso são mais custosos ainda.

Até…

Criado 13 de dezembro de 2006
Ultima resposta 23 de fev. de 2007
Respostas 7
Participantes 6