В последнем проекте решили использовать Spring + Hibernate, в том числе и для получения experience.
Проект — web application + standalone server
От Spring впечатления самые хорошие, а вот у Hibernate learning curve нам показался очень некомфортным, я бы даже сказал — больше проблем огребли чем решили

Как реально сколько нибудь большую модель данных использовать с Hibernate и сохранить независимость слоев пока не ясно. Вслед за lazy loading ползет куча граблей, необходимость следить за сессией, использовать транзакции итд. Имеющаяся литература — Hibernate in Action не изобилует реальными примерами а носит некий напыщенно академический характер... 8(
А если нужно просто приходящие датасеты мапить на Java объекты — наверно можно попроще решение найти, правда пока не знаю что именно.