[RESOLVIDO]Recuperar dados do mepeamento one-to-many por periodo

5 respostas
exilado

Boa arde galera

meu problema é o seguinte, tenho duas tabelas empresas e visitas, cada empresa pode ter N visitas;
a questão é a seguinte tem como eu recuperar em um empresa só as visitas de determinada data.

Estou utilizando o hibernate para realizar o mapeamento do banco.

5 Respostas

Hebert_Coelho

E como você ta fazendo a query?

Esse post mostra como fazer consultas: JPA Consultas e Dicas.

OBS.: o titulo do seu post ta errado.

exilado

com relação a query já tentei tantas ,mas nehuma teve o resultado esperado, mas a ultima que tentei foi essa

“SELECT e FROM Empresas e join e.visitas v where v.data between '”+inicio+"’ and ‘"+fim+"’"

Caso possa dar uma sugestão para o titulo eu agradeço pois sinceramente, estou perdido.

Vou olhar o post que você indicou. Obrigado

Hebert_Coelho

com relação a query já tentei tantas ,mas nehuma teve o resultado esperado, mas a ultima que tentei foi essa

“SELECT e FROM Empresas e join e.visitas v where v.data between '”+inicio+"’ and ‘"+fim+"’"

Caso possa dar uma sugestão para o titulo eu agradeço pois sinceramente, estou perdido.

Vou olhar o post que você indicou. ObrigadoO post que eu te passei mostra como fazer pesquisas utilizando between e data. [=

exilado

Hebert, bom dia.
Infelizmente ainda não consegui resolver o problema, seu post me ajudou em diversas coisa mas ainda tenho duvidas aqui. Pode ser que eu esteja com uma linha de raciocínio equivoca, mas deixa-me explicar melhor.
Estou trabalhando com relatórios onde eu passo os dados por DataSource, um desses relatórios é de visitas por empresa em um determinado período minha classe empresas esta assim:

public class Empresas { private Integer id; private String razao; private String fantasia; private String contato; private Set<Visitas> visitas; //metodos }
No caso estou passando para o relatório principal uma lista de empresas e o mesmo passa para um subrelatório a lista de visitas de cada empresa. Porém não estou conseguindo recuperar apenas as visitas do período especificado.
Caso alguém possa ajudar eu agradeço muito.
Obrigado

exilado

Bom dia galera
Consegui resolver o problema, não foi de uma forma muito elegante, mas funcionou.
Eu tenho que fazer duas buscas no banco uma para as empresas que existem lançamentos no período determinado e depois outra para buscar as visitas de cada empresa no mesmo período e substituindo a lista de visitas da empresa pela lista retornada.

Ficou assim.
List<Banco.Bean.Empresas> emp = eDAO.VisitasporData(inicio, fim);

for(int i=0;i<emp.size();i++){
    emp.get(i).setVisitas(vDAO.BuscaPeriodo(emp.get(i), inicio, fim));
}

ds = new JRBeanCollectionDataSource( emp );
InputStream inputStream = getClass().getResourceAsStream( "/Visitas.jasper" );

Vlw galera, e obrigado Hebert pela ajuda.

Criado 18 de fevereiro de 2013
Ultima resposta 21 de fev. de 2013
Respostas 5
Participantes 2