Недавно я внедрил систему гибернации поверх базы данных Oracle 11g, в которой используются капли. В этом нет никакой настоящей магии.
Стандартная причина ошибок гибернации 'Session closed' заключается в том (чтобы не указывать на очевидное), что сеанс, к которому присоединяется ваша сущность, действительно закрыт.
Определите, где именно и когда открывается и закрывается сессия. Это может быть не совсем очевидно, если вы используете AOP или пружину для управления этим для вас.
Кроме того, я уверен, что вам нужна открытая транзакция или, по крайней мере, соединение БД с отключенной автоматической фиксацией.
Gareth