Eu estou trabalhando em um projeto que gera relatórios, o banco de dados contém tabelas com muitos atributos. Eu pensei em criar classes somente com os atributos que eu vou utilizar para criar os relatorios.Fiz um teste com uma classe e uma tabela, não foi possivel pegar os resultados do banco somente com alguns atributos. Tem jeito de fazer o mapeamento para usar somentes alguns atributos?!se tem, como?!
Dúvida com Mapeamento hibernate
8 Respostas
Tiago,
Não há nada nenhum impedimento de mapear somente uma ‘parte’ da tabela. Só é preciso lembrar que no caso de um ‘insert’ todos os ‘not null’ precisam estar preenchidos.
Então, é melhor vc postar o código e o erro.
vamos lá, eu tenho uma tabela que tem os seguintes atributos:
cod_empresa
descEmpresa
ident_empresa
cnpj
ie
municipio
Mas eu só quero utilizar os seguinte atributos:
cod_empresa
descEmpresa
ident_empresa
O programa só irá ler os dados no banco de dados, não irá gravar nada. Esse programa é só para criar relatórios.
Existe a possibilidade de eu criar a classes só para ler esses atributos? se tem como?!
O teste que eu fiz foi no Netbeans na parte de HQL. Ele só me passou os dados quando eu criei os atributos da classes iguais aos atributos do banco. Ajuda aí!
"Existe a possibilidade de eu criar a classes só para ler esses atributos? se tem como?! "
Sim. É só criar a entidade com apenas os campos que vc quer. E só isso, não tem dificuldade maior nenhuma além de usar o hibernate como sempre. Coloca aí a sua entidade e o código que está executando o HQL.
você está falando para criar no banco apenas os campos q eu quero?!
Acredito que nós estamos falando línguas diferentes.
Deixa eu tentar de outro ponto. Você sabe o que é entidade para o hibernate? Porque se vc não souber o que é, acho que vale a pena você começar a pesquisar. É só a coisa mais importante do hibernate - e não é o banco.
Depois que você construir essa entidade, só com os atributos que vc deseja recuperar, você volta aqui e posta o código.
É só mapear só os campos que precisa, inclusive nem precisa mapear, basta criar classes para receber os dados da consulta, isso se estiver usando jsf ou algo q facilite a criação das interfaces…
Antes de tudo testa se essa sua consulta tá funcionando bem…
Eu pretendo usar Jsf para criar uma aplicação web, como testar a consulta antes ? eu tentei usar um recurso do netbeans.
Gente, Obrigado, eu consegui fazer o mapeamento mesmo somente usando alguns campos da tabela do banco.
Realmente é possivel fazer, fazendo o mapeamento somente dos campos da tabela que serão utilizados. Sendo assim eu fiz uma consulta HSQL no NetBeans para testar e funcionou perfeitamente.
ficou assim a consulta
me retornou a tabela empresa que está mapeada para a classe Empresa no package modelo.
from modelo.Empresa
Obrigado.