Pessoal, preciso de uma dica, penso q deve ser simples…
seguinte, qndo eu retorno uma busca no banco, eu retorno sempre uma lista de coisas…
agora nesse caso, eu vou retornar apenas um objeto, como q eu devo setar no lugar desse q.list()???
alguem pode me dar essa dica?
public Object findbyCodPeca(EstoqueBO estoque) {
HibernateFactory.getSessionFactory();
Session session = HibernateFactory.openSession();
session.beginTransaction();
//SQLQuery q = session.createSQLQuery("select * from estoque where PEC_ID = ?");
Query q = session.createQuery(" from EstoqueBO where PEC_ID = ?");
q.setParameter(0, estoque.getPeca());
EstoqueBO result = (EstoqueBO) q.list();
return result;
}
Caso você tenha o ID do objeto, você pode usar o método load() ao invés do list.
algo do tipo:
public Object findbyCodPeca(Integer id) {
HibernateFactory.getSessionFactory();
Session session = HibernateFactory.openSession();
session.beginTransaction();
Estoque estoque = (Estoque) session.load(Estoque.class,id);
return estoque;
}
Isso é apenas um exemplo. Usando generic, você pode criar apenas um método padrão para todos os DAOs.
Mas para procurar do modo que você fez use .uniqueResult()
hugov
#4
Eu acredito que tenha um comando getUniqueResult(); ou você pode continuar dando um list e pegando apenas o primeiro registro.
pessoal, mtooo obrigadooo pela dica…
funcionou aki…
Use session.get( Class , Serializable ):
Estoque estoque = (Estoque) session.get(Estoque.class,id);