Estou com um dúvida de como fazer para retornar o resultado de uma consulta que e realizada num banco de dados.
Tenho um DAO que contem uma consulta que e realizada no banco de dados que retorna varias colunas nao somente de uma tabela mas de varias tabelas
como faco para retornar os valores para o usuario (view) tenho que criar uma classe com os atributos retornados pelo SQL ?
Olá
Os dados dessa consulta que pertencem a tabelas diferentes estão relacionados de alguma forma, não?
Provavelmente alguns desses dados representam uma entidade principal, e os outros dados pertencerão a objetos que compõem essa entidade principal.
EXEMPLO:
SELECT c.nome, e.rua, e.numero, e.bairro, e.cep, e.cidade, e.estado
FROM Cliente c
INNER JOIN Endereco e ON e.id = c.id
O campo c.nome deve estar mapeado em um atributo nome da classe Cliente.
Os campos e.rua, e.numero, …, e.estado devem estar mapeados em atributos de uma classe Endereco.
No seu método de consulta, você criará uma instância de Cliente e outra de Endereco, guardando na entidade principal ( Cliente ) uma referência para a instância da entidade auxiliar ( Endereco ).
Desculpe se não fui muito claro. Poste mais detalhes do seu modelo e da sua consuta.
Abraços
Select
From Cliente A, DocumentoCliente B, DocumentoCliente C, DocumentoCliente D
Where B.NumCliente = A.SeqCliente
And B.NumTipoDocumento = 1 // CNPJ
And C.NumCliente = A.SeqCliente
And C.NumTipoDocumento = 3 // CPF
And D.NumCliente = A.SeqCliente
And D.NumTipoDocumento = 4 // IE
…
como faco este retorno dentro da minha classe Cliente tem list com os documentos do Cliente e dentro do documento cliente tem a classe Cliente?
Select
From Cliente A, DocumentoCliente B, DocumentoCliente C, DocumentoCliente D
Where B.NumCliente = A.SeqCliente
And B.NumTipoDocumento = 1 // CNPJ
And C.NumCliente = A.SeqCliente
And C.NumTipoDocumento = 3 // CPF
And D.NumCliente = A.SeqCliente
And D.NumTipoDocumento = 4 // IE
…
como faco este retorno dentro da minha classe Cliente tem list com os documentos do Cliente e dentro do documento cliente tem a classe Cliente?
Obrigado …[/quote]
Não dá pra vc melhorar o seu SQL assim??
Select A.SeqCliente,
B.NumCliente,
B.NumTipoDocumento
From Cliente A, DocumentoCliente B
Where B.NumCliente = A.SeqCliente
AND B.NumTipoDocumento IN (1,3,4)
Estou com um dúvida de como fazer para retornar o resultado de uma consulta que e realizada num banco de dados.
Tenho um DAO que contem uma consulta que e realizada no banco de dados que retorna varias colunas nao somente de uma tabela mas de varias tabelas
como faco para retornar os valores para o usuario (view) tenho que criar uma classe com os atributos retornados pelo SQL ?
Obrigado …[/quote]
Luciano,
em muitas situações as consultas relacionais com inner/outer joins, subquerys, agregações e etc são muito mais rapidas nos bancos que qualquer solução OR. Se as consultas desse tipo tiverem campos variados e não tiverem grandes quantidades de registros para retornar, você pode utilizar um Map para cada registro e repassar para a view através de um list.