Я участвую в процессах изменения уровня DAO с помощью Hibernate API на использование чистой реализации JPA API. Похоже, что рекомендуемый метод - использовать createNamedQuery из диспетчера сущностей. Именованные запросы хранятся в аннотациях в классах model/entity. Это просто не имеет смысла для меня. Почему вы определяете запросы JPA в объектах модели, но используете их в DAO. Разве не имеет смысла просто использовать createQuery из самого DAO и определять запросы в DAO или даже просто определять именованные запросы в самом DAO?
Для тех из вас, кто реализовал ваш уровень DAO с помощью API JPA, как вы определили свои запросы?