Use Singleton Pattern (static and initialized on load/access)
Better logging for Create/Get Old from thread local session
remove unnecessary session.close; try to set non-cacheable though not working
add manually call open/close session
log all jdbc sql stat(sql clauses/parameters/connection)
log all jdbc sql stat(sql clauses/parameters/connection)
change System.out.println to logger.info from log4j