Duvida no HIBERNATE

5 respostas
Hermanitto

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;
  }

5 Respostas

Jair_Rillo_Junior

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.

Marky.Vasconcelos

Mas para procurar do modo que você fez use .uniqueResult()

H

Eu acredito que tenha um comando getUniqueResult(); ou você pode continuar dando um list e pegando apenas o primeiro registro.

Hermanitto

pessoal, mtooo obrigadooo pela dica…
funcionou aki…

L

Use session.get( Class , Serializable ):

Estoque estoque = (Estoque) session.get(Estoque.class,id);
Criado 4 de dezembro de 2007
Ultima resposta 4 de dez. de 2007
Respostas 5
Participantes 5