Estou usando hibernate na minha aplicação, e várias vezes estou tendo dor de cabeça com a sessão do hibernate … quando ele encontra um objeto do mesmo tipo, ja referencia na sessão, com o mesmo id, ele da pau … isso acontece, porque minha sessão é um singletoon e eu a mantenho aberta o tempo todo …
A duvida, quando devo fechar a sessão, depois de operações dml ? depois de um select !? depois de qualquer operação ?
O correto é fechar sempre após alguma operação(depois de um commit, rollback), pois a mesma não é “Thread Safe” e pode conter objetos sujos, a que deve ser singleton é a “session factory”.