Я использую данные JPA в моем проекте. Я играю с миллионами записей. У меня есть требование, когда я должен получать данные для различных таблиц и строить объект, а затем рисовать его в пользовательском интерфейсе. Теперь как это сделать, мои репозитории данных spring. Я прочитал, что это может быть достигнуто с помощью Named native запросов.
Если именованный внутренний запрос не возвращает объект или список объектов, мы можем сопоставить результат запроса с правильным типом возврата на используя аннотацию @SqlResultSetMapping.
Но когда я пытаюсь использовать @SqlResultSetMapping
, он принимает еще один entityResult. Я понимаю, что это просто преобразование некоторого результата запроса только в результирующий набор объектов, но я хочу получить набор объектов без объектов.
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
В приведенном выше примере я просто пытаюсь получить результаты от учащегося Entity в другое pojo " CustomStudent", который не является сущностью. (Этот пример, который я пытаюсь выполнить только для цели POC, фактический usecase очень сложный, со сложным запросом, возвращающим разные результаты).
Как достичь выше usecase? Есть ли другой способ помимо использования запроса имени, чтобы мой метод репозитория возвращал объекты Non-Entities?