Как ограничить MySQL Query с Ebean в Play Framework 2.6 - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь перечислить большое количество данных (из базы данных).Когда я использую "find.all ()", сервер Play Framework аварийно завершает работу, так как он занимает много памяти.

Я пытаюсь ограничить запрос all () до 10 (на страницу).Но я не могу.и я пытался использовать findPagingList (length), но не могу, потому что в новой версии игры нет метода findPagingList в Finder, ближе всего к findPagedList, для которого я не могу установить размер страницы

Класс модели БД (Пользователь):

    package models;

    import io.ebean.Finder;
    import io.ebean.Model;


    import javax.persistence.*;
    import java.util.List;

@Entity
public class User extends Model{
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    public int id;
    public String name;
    public String tweet;


    public User(int id, String name, String tweet) {
        this.id = id;
        this.name = name;
        this.tweet = tweet;
    }
    public static Finder<Integer, User> find = new Finder<>(User.class);

и мой класс контроллера (UsersController)

в приведенном ниже коде я хочу ограничить запрос дораспечатывать записи, начиная с 'start', с записями 'length' на страницу, как в отправленных параметрах таблиц данных на стороне сервера

Таблицы данных на стороне сервера Отправленные параметры

 import io.ebean.*; import models.User; import play.data.Form; import play.data.FormFactory; import play.mvc.Controller; import play.mvc.Result;

import  views.html.users.*; import javax.inject.Inject; import java.util.List;

import static play.libs.Json.toJson;

public class UsersController extends Controller {

    @Inject
    FormFactory formFactory; //    @Transactional
    public Result ListAll(){
        int draw = Integer.parseInt(request().getQueryString("draw"));
        int length = Integer.parseInt(request().getQueryString("length"));
        int start = Integer.parseInt(request().getQueryString("start"));
        List<User> users = User.find.all();

Если что-то неясно, просто спросите, и я постараюсь предоставить как можно больше информации.

...