Na verdade vo usar os dados da seguinte forma:
Ao carregar o servidor 85% dos dados vão ser carregados na memoria. Já que 85% do conteudo não sofre alteração e quando sofre é feito por mim (Aonde vou dar um restart no server, se preciso for), 15% dos dados sofrem constante alteração no banco de dados (Em grande parte em update(10%) e pouco em insert(5%)), uma vez que os objetos estejam carregados a consulta vai ser feita só com os dados já em memória (e só nos casos de update/insert vou precisar manter algunsobjetos também atualizados.)
Poderia me falar sobre o Second Level Cache do Hibernate?
Preciso que o hibernate não fique indo no BD a cada chamada de um atributo e afins, pegue tudo do que já tem carregado na memoria, só faça algo caso haja alguma alteração no banco de dados, neste caso eu tenho todo o controle, pois somente uma aplicação fica rodando e faz alterações ou não no BD (Não uso JBoss ou Tomcat, uso o RedDwarf).
Meu contato com os clientes é só via socket, acessoao BD é só o servidor que faz, quando precisa.