Duvida Hibernate encontra o primeiro registro automático?
7 respostas
P
paribe
Olá,
tenho a rotina abaixo que lê desde o primeiro registro da tabela mais como é cadastro de pergunta
e se for deletado o registro numero 1 ai f…
O que queria saber se o Hibernate tem como me dar o primeiro registro da tabela em ordem de numero
e se eu passar esse numero (id da tabela) me retorna o próximo ou seja ,
O correto é vc trazer todos os registros do banco de dados e não um por um.
Assim ele já traz o id pra vc. Aí sim vc vê o q faz com o ID.
Do jeito que está fazendo vc está tentando adivinhar o ID das perguntas.
P
paribe
mas eu tenho uma pergunta por página e a idéia é um ter 50 perguntas
por isso trago uma a uma .
Por isso estou fazendo dessa forma ???
aluisiodsv
Vc não pode se basear chutando qual id é a pergunta.
Faça um select q traga a primeira linha, depois um q traga a segunda linha, e assim por diante.
Use LIMIT e OFFSET.
SELECT p FROM PerguntaAluno p LIMIT 1
essa é a primeira pergunta.
SELECT p FROM PerguntaAluno p LIMIT 1 OFFSET 1
essa é a segunda pergunta.
SELECT p FROM PerguntaAluno p LIMIT 1 OFFSET 2
essa a terceira, e por aí vai.
Aí ao pegar a entidade, vc terá o id, e através deste id vc trás as respostas que estão relacionadas com esta pergunta.
LPJava
veja se o HQL ou Criteria nao tem algo que ti ajude antes de usar SQL.
aluisiodsv
Então vamos as outras maneiras …
A consulta já está em hql e se quiser pode retirar o “SELECT p” dela.
Outras formas é pelo criteria com os métodos, .setFirstResult, e .setMaxResults …
P
paribe
olá,
como faço pra usar o comando SELECT p FROM PerguntaAluno p LIMIT 1
publicPerguntaAlunobuscar(PerguntaAlunoaluno,intregistro){PerguntaAlunoperguntaAluno=null;Stringhql="";try{if(registro==0){hql="SELECT p FROM PerguntaAluno p LIMIT 1 ";}else{hql="SELECT p FROM PerguntaAluno p LIMIT 1 OFFSET "+registro;}perguntaAluno=(PerguntaAluno)HibernateUtil.getInstance().getSession().createQuery(hql);}catch(Exceptione){System.out.println("Não foi possível encontrar Pergunta Aluno."+e);}returnperguntaAluno;}
publicPerguntaAlunobuscar(PerguntaAlunoaluno,intregistro){PerguntaAlunoperguntaAluno=null;Stringhql="";try{hql="SELECT p FROM PerguntaAluno p ";Queryq=HibernateUtil.getInstance().getSession().createQuery(hql);q.setMaxResults(1);q.setFirstResult(registro);perguntaAluno=(PerguntaAluno)q.getSingleResult();// Este método é do JPA se não me engano. Se estiver usando Hibernate puro é outro.}catch(Exceptione){System.out.println("Não foi possível encontrar Pergunta Aluno."+e);}returnperguntaAluno;}