Как передать динамическое предельное значение для сущности JPA View? - PullRequest
0 голосов
/ 27 декабря 2018

Я создал представление в MySQL и это представление, которое я использую в JPA в качестве сущности,

@Entity
@Immutable
@Table(name = "my_view")

Теперь проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь выполнить разбиение на страницы, устанавливая setMaxResults вОбъект запроса, в бэкэнде происходит то, что у представления нет предела, поэтому он пытается извлечь все записи, затем применяет setMaxResults, что снижает производительность. Я мог бы написать собственный запрос, но он был немного грязным.

Запрошенный запрос будет выглядеть следующим образом

select e from myViewEntity where 1=1 and (adding addition constraints as parameter)

Мой вопрос: есть ли способ передать Limit в качестве динамического значения представлению ??

Примечание:Я передаю ограничения представлению, используя псевдоним.

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать методы setFirstResult и setMaxResults в запросе, как показано ниже, передавая значение для firstResult и maxResults динамически.

List<User> users = entityManager().createQuery("SELECT o FROM User o", User.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...