É possível criar um relacionamento apenas nas classes sem alterar o banco?
10 respostas
Kleber-rr
Boa tarde amigos.
A alguns dias estou passando por uma situação um pouco trabalhosa e até mesmo chata.
Recebi uma base de dados em postgres de um órgão do Governo Federal, e, em poucas palavras: o banco é uma bagunça. Tabelas sem PK nem FK são alguns dos problemas que eu posso citar aqui.
Estou fazendo uma interface bem simples para realizar algumas consultas e gerar alguns relatórios, mas como não estou conseguindo fazer a maioria das consultas com Hibernate Criteria, estou usando a POG (programação orientada a Gambiarra), ou seja: muitas consultas através do createSQLQuery.
O que eu gostaria de saber, é se é possível criar o relacionamento apenas nas entidades do projeto sem alterar o banco, pois tenho tentado fazer da forma convencional (usando anotações) e me retorna erros de annotations.
O hibernate deve acompanhar o banco e não o banco ao hibernate.
sim, é possível.
drsmachado
Sei não, mas acho que a melhor idéia seria utilizar JDBC mesmo, não seria viável?
Marlon_Meneses
acho que poderia ser melhor jdbc também
Hebert_Coelho
eu já tive que pegar um db zuretado uma vez. mas para minha sorte eu não precisava exibir todos os dados. o que eu fiz foi mapear apenas as colunas que eu precisava. [=
Kleber-rr
O pior de tudo, é que tem consulta que não roda nem com reza, mesmo utilizando createSQLQuery… no banco vai legal, mas no dao… veeeeeeeiiiii… kkkk (aperfeiçoando a paciência e as gambiarra)!!!
M
Marcus_Leite
Uma saída poderia ser a criação de Views com as informações que você necessita no seu sistema. Aí se o uso de Hibernate for obrigatório, você mapearia as Views em entidades, tendo o cuidado ao definir uma coluna como @Id (ela tem que ser única na View).
Kleber-rr
Excelente sugestão, Marcus.
Vou tentar isso sim.
Agradecido.
Kleber-rr
Vou tentar essa sugestão, mas até agora, mesmo fazendo a consulta via HQL ou SQL, me retorna esse erro:
E esse campo é String e não número, e em momento algum eu faço essa conversão. Até pq eu quero preencher uma lista com 2 campos: um String (nomeMunicipio) e um campo int (count).
Tenso…
MarkKnopfler
Vê se o mapeamento está feito certo, ele está tentando pegar o conteúdo de algum campo numérico (ou configurado como numérico).
Kleber-rr
Amigo, o problema é que não existe mapeamento nesse banco imundo… as tabelas não tem PK nem FK…
Tenso…