Erro Hibernate

Olá. Estou desenvolvendo um projeto com Hibernate e venho enfrentando alguns problemas.
Tenho uma entidade que possui vários atributos do tipo List. Então para facilitar minha vida na hora de inserir valores e não precisar fazer um método para adicionar objetos em cada atributo eu fiz um método com Reflection que consegue pegar a Lista corrente e adicionar um novo item nela. No entanto quando vou persistir com saveOrUpdate, a aplicação gera uma exception.

List &lt Object &gt objList = ( List &lt Object &gt ) getMethod.invoke ( curriculo ); if ( ( objList == null ) || ( objList.size ( ) == 0 ) ) { objList = new ArrayList &lt Object &gt ( ); objList.add ( obj ); } else { boolean found = false; for ( Object object : objList ) { if ( ( ( Integer ) objGetIdMethod.invoke ( object ) ).equals ( ( Integer ) objGetIdMethod.invoke ( obj ) ) ) { objList.set ( objList.indexOf ( object ) , obj ); found = true; break; } } if ( !found ) objList.add ( obj ); } setMethod.invoke ( curriculo , objList ); DAO.saveOrUpdate ( curriculo );
Eu omiti as linhas que procuram pelos métodos a serem invocados. O objeto curriculo foi populado através de uma consulta, então eu chamo o getLista e jogo em minha lista, então eu procuro por um objeto que contenha o mesmo id que o que eu quero inserir ou alterar. Se encontrar ele troca os objetos, senão ele adiciona um novo na lista. Depois disso chamo o método setLista e coloco a lista atualizada e mando persistir.
Estou tendo o seguinte exception quando tento alterar esta lista:

Alguém pode me ajudar a consertar isso ou mesmo me indicar uma maneira melhor de fazer isto?

Obrigado.

dentro do for, coloca o comando

Não adiantou não. :roll:
Ainda persiste no mesmo erro!

Resolvi da seguinte maneira:
no lugar de:

Eu coloquei o seguinte código:

int i = objList.indexOf ( object ); for ( Method method : object.getClass ( ).getMethods ( ) ) { if(method.getName ( ).startsWith ( "set" )) { Method method2 = object.getClass ( ).getDeclaredMethod ( "g"+method.getName ( ).substring ( 1 ) ); method.invoke ( objList.get ( i ) , method2.invoke ( obj ) ); } }
Pelas mensagens de erro, pude perceber que ele não aceitava eu substituir um objeto na lista por outro com o mesmo id, então eu sai chamando todos os métodos set do objeto diretamente na lista e passando como parâmetro o get equivalente do objeto que quero atualizar.

Achei que tinha concertado mas o erro apareceu de novo. :roll:
O negócio é que ele não deixa eu adicionar novos objetos nas listas que estão na sessão e persistí-los.
Alguém sabe como devo proceder para concertar este erro?
Estou abrindo a sessão e criando a transação em cada request da minha aplicação através de um filtro.
Estou fazendo algo de errado?