Hibernate - действительно хорошее решение, однако его лицензия (GPL) означает, что его нельзя использовать в некоторых проектах.
JPA - это спецификация, которая поддерживает ряд реализаций, включая Hibernate, а также OpenJPA и другие продукты с другими характеристиками.
Если вы можете обойтись без использования только Hibernate, возможно, стоит сделать это, поскольку он зрелый, стабильный и хорошо работает. Тем не менее, если вам нужно включить механизм персистентности в продукт, который поставляется с лицензией не-GPL, вам нужно пойти по пути JPA (или заплатить за коммерческую лицензию Hibernate).