Я пытаюсь перечислить большое количество данных (из базы данных).Когда я использую "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();
Если что-то неясно, просто спросите, и я постараюсь предоставить как можно больше информации.