Hibernate, porque não!
O mundo do desenvolvimento de software (e não somente o desenvolvimento de software em Java, mas para qualquer linguagem ou plataforma) é algumas vezes engraçado. Falando em Java vemos um dos mais famosos frameworks do mercado, o Hibernate.
A sua proposta é interessante, fazer persistência de dados orientada a objetos e livrar a sua aplicação do SQL, parece fantástico, mas não chega a tanto. Muitos e muitos desenvolvedores em Java vendem o Hibernate como a solução divina para a persistência de dados, depois a aplicação final fica lenta e a culpa acaba sendo do Java.
O fato é que o framework Hibernate é muito eficaz para aplicações tipo CRUD (Create, Read, Update and Delete), pois torna a sua persistência de dados orientada a objetos e o seu código Java livre de SQL, saindo dessa esfera o Hibernate começa a gerar mais complicações do que soluções e o melhor negócio é partir para outro framework ou trabalhar sem framework mesmo.
Vale lembrar que o Hibernate é particularmente lento se for utilizado com procedures, functions e outros adereços de banco de dados e pode gerar complicadores ainda maiores no seu mapeamento, além de que apesar do Hibernate liberar o código Java todo o SQL ele pode entipi-lo de código HQL.
Para quem não sabe, HQL é quase um fork do próprio SQL que o Hibernate utiliza principalmente para gerar consultas mais complexas, onde o Criteria não seria capaz de executar a consulta por si só.
Resumindo, se a sua aplicação Java for desenvolvida utilizando blue prints, utilizar SQL padronizado (para obter independência em relação ao banco de dados) e ter uma boa arquitetura a sua aplicação pode ser tão ou mais robusta, escalável e de fácil manutenção que qualquer outra utilizando Hibernate ou qualquer outro framework de persistência de dados mesmo você trabalhando diretamente no JDBC.
No fundo, no fundo o melhor caminho ainda é o conhecimento da plataforma Java e suas capacidades e principalmente o conhecimento de suas limitações e a partir daí qualquer framework é pura perfumaria.