HQL Pegar usuarios com a data mais atual

4 respostas
denislima

Falae galera,

Opa …to precisando da força de voces!

To usando hibernate com HQL.

Preciso retornar todos os usuarios de acordo com o nome que eu passar, mas devera retornar somente um registro de cada usuario e que seja o registro mais atual

entao to usando group by no id… Com isso ele retorna so um registro de cada usuario, ms ainda nao o registro mais atuaal.

Preciso que seja com a data mais atual…

nao sei como fazer para retornar so o usuario do registro mais atual.

Se alguem puder ajudar agradeço

abracos

hql.append("select obj from ");
hql.append(" Class as obj where");
hql.append(" obj.user.nickname like '" + nick + "%' and");
hql.append(" obj.user.status = :status");
hql.append(" group by obj.user.id");

4 Respostas

zoren

o having não serve?

denislima

tentei assim e nao consegui:

hql.append(" group by obj.user.id having max(obj.data)");

alguma sugestao?

abracos

basarah

bom, nao conheco muito de HQL, mas em SQL POSTGRESQL eu faria assim:

select * from tabela where nome = 'nome' and data = (select max(data) from tabela where nome = 'nome')

neste caso, pelo que eu entendi, usar like não é o ideal, e esse campo nome deveria ser unico também.

batista.gerson

resuscitando o topico ja q ele e o mais recente denislima como vc resolveu o problema?? basarah o seu select ta perfeito mas nao funciona em hql
nao me pergunte o motivo

eu ja tentei assim

" select d "
		+ "from DamDeclaracaoTO d "
		+ "where d.nrInscricaoEstadual = :nrInscricaoEstadual "
		+ " and  d.csSituacao = '01' " 
		+ "and d.dtEntregua = (select max(d.dtEntrega) from " 
		+ "DamDeclaracaoTO d " 
		+ "where d.nrInscricaoEstadual= :nrInscricaoEstadual)";



erro


org.hibernate.QueryException: could not resolve property: dtEntregua of: br.gov.am.sefaz.trb.gae.dam.model.DamDeclaracaoTO [select d from br.gov.am.sefaz.trb.gae.dam.model.DamDeclaracaoTO d where d.nrInscricaoEstadual = :nrInscricaoEstadual  and  d.csSituacao = '01' and d.dtEntregua = (select max(de.dtEntrega) from br.gov.am.sefaz.trb.gae.dam.model.DamDeclaracaoTO de where de.nrInscricaoEstadual= :nrInscricaoEstadual)]
Criado 14 de julho de 2010
Ultima resposta 4 de nov. de 2010
Respostas 4
Participantes 4