V projektech, na kterych pracuju a pracoval jsem, se pouziva JPA. Po samotnem Hibernate v pozadi se saha jen, kdyz je to nevyhnutelne a nelze to provest pomoci JPA.
Motivace je udrzet kod cisty, pokud mozno bez zavislosti na konkretni implementaci, drzet se standardu. Tak jako z mych metod vracim radeji genericke rozhrani (Set nebo Collection) i kdyz je na pozadi napriklad LinkedHashSet.
Dalsi duvod je ten, ze nad generickym JPA pracuji dalsi knihovny a nastroje, treba
https://spring.io/guides/gs/accessing-data-jpa/Stejny pristup se opakuje i v jinych castech java API. Kdyz pujde o JMS, budu se drzet standardniho API, i kdyz vim, ze mam zrovna na pozadi konkretni implementaci, treba ActiveMQ. Opet - kod je cistsi, bez zbytecnych zavislosti na konkretni implementaci, snadneji udrzovatelny a pochopitelny, lepe pouzitelny.