Репозиторий JPA используется при использовании среды Spring-data. Эта платформа автоматически создает запросы, просматривая имена методов, определенные в вашем интерфейсе reposiroty.
JPQL используется для написания запросов, независимых от базы данных. Вы можете определить эти запросы в классе сущности. Вам понадобится класс DAO для выполнения запросов JPQL.
Если вы хотите писать запросы к базе данных, определенные c, вы можете определить собственные запросы в начале. Вам также понадобится уровень DAO для их выполнения. Однако собственные запросы могут или не могут быть независимыми от базового механизма базы данных.