Object

Pessoal como eu faço pra essa consulta me retornar um objeto:

Tenho esse eguinte trecho:

try {
			for (Map veiculo: veiculos) {
				historicoFindCar = dao.findByNamedQuery("ultimaTransmissao", new Object[] {veiculo});
				ultimaTransmissao.add((HistoricoFindCar) historicoFindCar);
			}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return ultimaTransmissao;
	}

Dessa forma ta dando erro. Eu quero que para cada iteração adicione um objeto a lista. Como eu faço isso?
Antes a consulta me uma lista, mas eu preciso que ela me retorne um objeto.

Vlw! :lol:

Coloca o Erro ae pra gente vê!

Ql o retorno do seu dao?

se for uma collection de já tem a resposta…

Pessoal Muito bom dia!
Esse é o erro:

org.springframework.orm.hibernate3.HibernateQueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo = ?)
    
    ]; nested exception is org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo = ?)
    
    ]
org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo = ?)
    
    ]

o q vc retorna aqui dao.findByNamedQuery :?:
post o método ai…

A consulta “ultimaTransmissao”.

<query name="ultimaTransmissao"><![CDATA[
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo = ?)
    ]]>
    </query>

no momento minha implementação ta assim:

List<HistoricoFindCar> historicoFindCar = null;
				
		try {
			for (Map veiculo : veiculos) {
				historicoFindCar = ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos);
				ultimaTransmissao.add((HistoricoFindCar) historicoFindCar);
			}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return ultimaTransmissao;
	}

Aguém teria alguma sugestão?
:lol:

:roll:

Brother vc tem a resposta só não viu.

for (Map veiculo : veiculos) { historicoFindCar = ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos); ultimaTransmissao.add((HistoricoFindCar) historicoFindCar); }
retorna um List

historicoFindCar = ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos);  

e aki vc está querendo fazer um (cast) de uma list para um HistoricoFindCar que são objetos diferente

ultimaTransmissao.add((HistoricoFindCar) historicoFindCar); 

se o ultimaTransmissao for uma Colection, um List ou uma arrayList não precisa usar

historicoFindCar = ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos); ultimaTransmissao.add((HistoricoFindCar) historicoFindCar);

Basta fazer isso:

ultimaTransmissao = ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos);
ou se for um objeto vc pode fazer assim tbm

ultimaTransmissao.add((HistoricoFindCar) ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos));

Abr

Cara olha só, ainda continua o erro:

ficou assim:

try {
//			for (Map veiculo : veiculos) {
			historicoFindCar.add((HistoricoFindCar) 
						((HistoricoTransmissaoFindCarDAOHibernate) 
								dao).ultimaTransmissao(veiculos));  
//			}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return historicoFindCar;

N sei se é dessa forma q tu disse, mas n ta dando certo. A minha consulta espera um objeto e eu to mandando uma lista de maps.

o Erro:

org.springframework.orm.hibernate3.HibernateQueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo.objectID = ?)
    
    ]; nested exception is org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo.objectID = ?)
    
    ]
org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo.objectID = ?)
    
    ]

vlw pwla ajuda!

ql era para ser seu retorno?

testa a query sem o retorno ve se ela funciona …

((HistoricoFindCar) ((HistoricoTransmissaoFindCarDAOHibernate) dao).ultimaTransmissao(veiculos));

e me confirma se esse codigo está correto

 dao).ulti //... ve se esse dao não era pra ser chamado assim dao.ulti em vez de dao).ulti ...

O retorno tem q ser um objeto.

public List ultimaTransmissao(List<Map> veiculos) throws Exception {
			return ((HistoricoTransmissaoFindCarDAOHibernate) 
								dao).ultimaTransmissao(veiculos);  
	}

Eu fiz dessa forma, mas infelizmente ainda ocorre o erro.
Essa é minha consulta:

<query name="ultimaTransmissao"><![CDATA[
    	from HistoricoFindCar u where 
    	u.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo.objectID = ?)
    ]]>
    </query>

Alguém sabe o q esse erro quer dizer?

Expected positional parameter count: 1, actual parameters: [] [
    	from HistoricoFindCar u where 
    	u.veiculo.objectID = (select max(objectID) 
    				from HistoricoFindCar vei 
    				where vei.veiculo.objectID = ?)

Obrigado! :roll:

Num dava pra tu passar como argumento um:

[code]

  1. public List ultimaTransmissao(Map veiculos) throws Exception {
  2.         return ((HistoricoTransmissaoFindCarDAOHibernate)   
    
  3.                             dao).ultimaTransmissao(veiculos);    
    
  4. }  [/code]
    

Enquanto ao erro, ele está esperando um parâmetro e teu Map está sem nada!
Dá uma verificada nesse teu método aí!
Valew!

Resolvi em partes o problema, n ta dando mais o erro. Só que minha consulta agora ta vindo vazia agora.
hheheheh!
To apanhando!!!
Mas é isso aí! To tentando aqui, com a ajuda de vcs.

Eu fiz as seguintes alterações.

Minha implementação:

List<HistoricoFindCar> historicoFindCar = null;
				
		try {
			for (Map veiculo: veiculos) {
			historicoFindCar = ((HistoricoTransmissaoFindCarDAOHibernate) 
					dao).ultimaTransmissao(Long.valueOf(veiculo.get("OBJECTID").toString()));
			}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return historicoFindCar;
	}

Meu DAO:

public List ultimaTransmissao(Long veiculos) throws Exception {
		return findByNamedQuery("ultimaTransmissao", new Object[] {veiculos});
	}

Sobre o DAO ainda me causa uma certa confusão, eu acrecentei “new new Object[] {veiculos}”. Pelo que eu entendi ele ta me retornando um objeto do tipo veiculos. Antes eu tinha colocado pra retornar uma lista de maps do tipo veiculo e a minha consulta estava esperando um objeto. Pelo q parece esse problema foi resolvido, mas agora ta vindo vazio.

Alguém tem uma sugestão? :lol:

VlWsssss!

Um Abraço!