Boa noite.
Ao tentar salvar um objeto com o hibernate, recebo a seguinte exceção: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session.
Sei que tem um registro no banco de dados que possui a mesma PK, até aí tudo bem. O problema é que essa exceção é levantada, cai no catch e o processo (o método main da minha classe) simplesmente não pára. Ele fica rodando indefinidamente, como se estivesse dentro de um loop infinito.
Outra coisa estranha é que, antes de usar um try-catch, minha classe não mostrou que poderia ser levantada uma exceção (quando usamos objetos que levantam exceções, a IDE [netbeans, eclipse] não nos deixa compilar até tratarmos de alguma forma, correto?). Isto é, é como se eu pudesse usar as classes que estão levantando a exceção SEM colocar um try-catch. Coloquei esse try-catch para tentar pegar a exceção e tratar, mas não adiantou…
Basicamente, o problema é esse. Tento salvar um objeto com o save, ele lança a exceção (que, se puder ser tratada estaria OK), mas mesmo caindo no catch, a classe fica rodando indefinidamente, como se estivesse num loop infinito.
Se o ID do objeto não for repetido, a classe se comporta normalmente, sendo finalizada.