Dúvida com código - palavra chave class sendo utilizada dentro de um método [RESOLVIDO]

4 respostas
P

Boa noite pessoal,

Estou estudando a respeito de Hibernate e tenho uma dúvida a respeito desse código (não é referente a hibernate):

Produto produto= (Produto) session.load(Produto.class, 1L);

Eu não entendo o significado do “Produto.class”, o que ele significa? como devo lê-lo? Pra que serve?

Obs.: a minha dúvida é só referente ao “Produto.class”, o resto do código eu já consigo compreender.

Já pesquisei no Guj, em livros (Deitel) e no Google de várias formas, mas, quando coloco alguma coisa referente sempre aparece explicando a respeito de nomeação de arquivos e não sei qual outra palavra posso colocar para esse código ser explicado.

4 Respostas

wiltonor

Este método session.load(suaclasse.class,id) onde a classe é a classe utilizada no mapeamento O/R e id é o atributo que referencia o id(a PK da tabela), retorna uma instancia Object contendo o registro da tabela com este id, por isso o cast antes da atribuição é necessário.

Abçs,

Wilton

P

Wilton, entendi… mas, não muito… eu entendi o que o método faz, mas, qual o motivo de ter colocado o .class? Quando eu posso usar o .class em outros casos?

wiltonor

O motivo é que você não está referenciando diretamente um objeto e sim por meio de IOC(inversão de controle) obtendo um objeto. O método load retorna um objeto persistente ou um proxy para este objeto, caso o objeto não exista você receberá uma exceção.

P

Obrigado Wilton, acho que agora entendi… vou pesquisar melhor a respeito de IOC… nunca tinha ouvido falar nisso…

Mais uma vez, obrigado pela ajuda…

Criado 15 de janeiro de 2011
Ultima resposta 16 de jan. de 2011
Respostas 4
Participantes 2