e ai galera, blz
Sequinte alguem sabe como retornar a posicao do registro na tabela??
exemplo:
tenho uma tabela Cliente assim
id, razao social
1 , jose da silva
2, mario legal
9, toninho
11, arlinho
Quero sabe ser tem como eu fazer uma query assim
Query query = getSessao().createQuery("from Cliente where id = 9")
Cliente cli = (Cliente) query.uniqueResult();
e em algum lugar desse pra saber que este registro esta na posicao 3 ta tabela
String query = "From Cliente where idCliente = 9"; this.session.createQuery(query).uniqueResult();
Repare que o campo do idCliente usado na query é identico a variavel criada na classe de modelo, funcionou ?
L
leopoldof
Na verdade eu precisaria da posição da linha que vem na listagem da pesquisa, e não do id, o dito “row_number”, pois estou implementando paginação em minha tabela,
então quando cadastro por exemplo um novo produto, ele iria refazer a tabela e eu gostaria de pegar a posição que estaria este produto para selecionar a página e já sair mostrando ele…pois fiz uma paginação de 2000 registros. Pois tenho uma tabela que vai ter uns 10.000 produtos…sendo então que terei 5 paginas na tabela. Para melhorar o desempenho, fiz a consulta buscando somente os produtos da página selecionada. O problema é que quando cadastro um produto, de nome “Melancia” por exemplo… ele vai cair lá na página 3, então eu tenho que descobrir no salvar o produto em que posição na listagem ele está para que eu possa já selecionar a página correta, e não sempre a primeira página… Mas não quero ter que fazer uma pesquisa completa, pois daí cada vez que eu salvaria um novo produto ou editasse um, teria que buscar os 10.000 para ver em que posição estaria…e desse jeito ficaria lerdo…creio que tenha algum tipo de select que faça isso como um Select count(cdProduto) por exemplo que me retorna um total de registros…
jokacwb
Cara ,
Não sei se entendi bem a sua dúvida, mas de qualquer forma vmus lá:
vc pode sim identificar a posição de um registro dentro de uma outra lista veja o código que montei:
//Este trecho simula a lista completa que vc obteve do hibernateList<Cliente>li=newArrayList<Cliente>();li.add(newCliente(1,"jose da silva"));li.add(newCliente(2,"mario legal"));li.add(newCliente(9,"toninho"));li.add(newCliente(11,"arlinho"));//Simula o registro isolado obtido pelo (Cliente cli = (Cliente) query.uniqueResult())Clientec=newCliente(9,"toninho");//Localiza o registro na listaintposicaoNaLista=li.indexOf(c)+1;System.out.println("Cliente "+c.getRazaoSocial()+" com id "+c.getIdCliente()+" está na posição "+posicaoNaLista+" da lista");
Observação: não esqueça de implementar os métodos equals e hashCode na sua classe Cliente, para garantir q o registro
isolado é idêntico ao da lista.
é isso, espero que ajude,
L
leopoldof
Em um List ou ArrayList, ou vector…tudo bem até que dá…
O que me refiro é conseguir essa informação via sql… pois vou fazer consultas com grandes números de registros… tipo…20.000
e presciso saber a posição de determinado registro dentro desses 20.000 pra mim trazer somente a página que ele está e não os 20.000… senão perde muuuito o desempenho fora que uma hora vai dar estouro de memória se sempre trouxer todos os registros…
jokacwb
Se o seu banco for MS SQL server segue alguns links q pode te ajudar