Dúvida em Hibernate ( DAO genérico )

4 respostas
M

Opa :smiley:

Andei pesquisando e achei o material no blog da caelum sobre daos genéricos ( http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/ ), mas quando implementei o LOAD, não consigo retornar um objeto do tipo T, o que estou fazendo de errado?

Ele diz que não consigo converter Objeto pra T :frowning:

public T findByID(Serializable id) {
		//try {
			return session.load(classe, id);
			//transaction.commit();
		/*} catch (Exception ex) {
			if (transaction != null) {
				try {
					transaction.rollback();
				} catch (HibernateException hex) {

				}
			}
		} finally {
			try {
				session.close();
			} catch (HibernateException hex) {

			}
		}*/
	}

4 Respostas

fabiozoroastro

mendigosujo,
pelo que eu me lembre o session.load(…) retorna um Object, então, altere seu método.

return (T) session.load(classe, id);

Abraço.

M

Po, mas que diferença faz eu usar um cast ai ou usar um cast na minha classe? Só eu mudar para Object ao invés de T :shock:

fabiozoroastro

Convertendo no método do DAO Genérico, vc só converte o retorno em um lugar. Faça o teste. :wink:

B

A diferença é que o método já está retornando um objeto do tipo T, cast lá fora não adianta, o erro de conversão está dentro da classe, bem no return.

Criado 29 de abril de 2008
Ultima resposta 29 de abr. de 2008
Respostas 4
Participantes 3