как получить запросы из jpa-named-queries.properties

Я использую файл jpa-named-queries.properties для написания HQL и собственных запросов для интерфейсов моего репозитория.

теперь проблема заключается в том, что когда я пишу собственный запрос, возвращаемые значения, которые я не могу напрямую преобразовать в сущность, поскольку столбец, определенный как Long в сущности, теперь изменен на BigInteger. ПФБ

введите здесь описание изображения

я также получил решение для этого, чтобы передать собственный запрос моему объекту, но я хочу, чтобы мой запрос оставался в jpa-named-queries.properties , я не хочу, чтобы он жестко кодировался в моей реализации DAO.

Query q = getEntityManager().createNativeQuery("select * from todo", Todo.class);
    List<Todo> l = q.getResultList();

приведенный выше код работает нормально, т. е. я могу написать собственный запрос, и он также будет возвращать данные в формате объекта.

есть ли способ прочитать этот запрос из jpa-named-queries.properties ???

файл jpa-named-queries.properties

TodoRepo.getList=select * from todo

TodoRepo.java

@Repository
public interface TodoRepo extends JpaRepository<Todo, Long> {
      @Query(nativeQuery = true)
      public void getList();
}

person ankur singh    schedule 05.09.2020    source источник
comment
Сначала попробуйте прочитать из файла свойств (Ref), затем передайте строку в createNativeQuery   -  person Eklavya    schedule 05.09.2020
comment
Спасибо @Rono за предложение, есть одно сомнение, поскольку этот файл уже загружен в контексте, и интерфейсы репозитория читают этот файл, стоит ли загружать тот же файл свойств в качестве источника свойств ?? просто хочу понять, вызовет ли загрузка его дважды для разных целей какие-либо проблемы с производительностью или что-то в этом роде?   -  person ankur singh    schedule 05.09.2020
comment
Если вы уже загрузились в контексте, используйте например   -  person Eklavya    schedule 05.09.2020
comment
вот в чем проблема, я знаю, что это в контексте, поскольку интерфейсы репозитория читают его, но я не знаю, как его читать, поскольку он был автоматически подобран весенней загрузкой, как только я поместил его в \src\main\ ресурсы\META-INF\jpa-named-queries.properties . любое предложение, как я могу прочитать этот файл?   -  person ankur singh    schedule 05.09.2020
comment
Что произойдет, если вы используете @Query(name = "TodoRepo.getList",... ? Я не уверен, работает ли это только для JPQL или нет.   -  person Eklavya    schedule 05.09.2020
comment
да, это работает, но снова я не смогу сопоставить возвращаемые значения с классом сущности todo, все значения Long преобразуются в BigInteger (как показано выше). Мне просто нужно передать этот запрос в getEntityManager().createNativeQuery() метод, чтобы работать правильно.   -  person ankur singh    schedule 05.09.2020