Banco de Dados não relacionado vs Hibernate!

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…

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:

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!

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

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

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!

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:

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é…