Objeto persistente Hibernate

Galera, tenho uma duvida. Quando fazemos o load de algum objeto atraves do Hibernate pq ele vem como um objeto persistente e nao como um simples objeto para eu manipula-lo como quiser e nao, por exemplo, ficar recebendo erro de “session is closed …”. O que ele faz com esse objeto que consegue controlar minhas ações sobre ele?

Alberto

um objeto é persistente qd é observado por uma session, certo!?

então, qd vc faz um load… “session.load(Class, id)”… vc carrega um objeto do banco e enqt sua sessão estiver aberta esse objeto ficará no modo persistente. assim, qualquer alteração desse objeto persitente causará uma atualização na base de dados, seja com flush(), commit() de uma transação.

uma outra coisa q vc deve perceber é q load utiliza lazy, e retorna null caso vc não seja encontrado nenhum objeto relacionado ao id informado.

obs: se vc utilizar get, alem da possibilidade de utilizar lazy, vc recebe um objeto com seus atributos vazios caso o id não seja encontrado no banco.

dica: utilizando get é vc pode utilizar hql para fazer uma pesquisa mais completa do seu objeto.

confira seu código para ver se vc não fechou a sessão e está tentando utilizar algum método flush(), commit()…