Hibernate и MSSQL сущности: как правильно отобразить агрегированные результаты - PullRequest
0 голосов
/ 24 марта 2019

Чтобы набросать контекст:

Я занимаюсь рефакторингом этого приложения, которое имеет проблемы с производительностью, поскольку оно имеет много агрегированных значений. В настоящее время результаты были реализованы в виде вычисленных значений внутри столбцов (https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-2017)., что на первый взгляд звучит неплохо, но при злоупотреблении может оказать огромное влияние на производительность (в данном случае).

Проблема:

Мне нужны агрегированные результаты в моем приложении, но я не вижу подходящего способа сделать это. В настоящее время у меня есть этот оптимизированный запрос для сущности, но проблема в том, что мне нужно переписать все, и я теряю ленивую загрузку (и другие стандартные функции). Потому что в настоящее время я сопоставил этот запрос с виртуальной сущностью, чтобы отобразить его на экране, но он ограничивает меня, поскольку у меня нет доступных отношений и т. Д.

Так что в идеале должен быть способ, которым я мог бы использовать свою сущность в режиме гибернации и при этом иметь производительность оптимизированного запроса. Или что я могу переписать поведение хранилища по умолчанию, чтобы всегда использовать этот запрос для извлечения его из базы данных. Вопрос, конечно, это возможно?

Редактировать: Я знаю существование аннотации @Formula, но это будет просто означать, что мы переместим логику запроса из вычисляемого столбца в спящий режим и что он запустит подзапросы (поэтому я предполагаю, что он выиграл не решить проблему)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...