我正在尝试列出大量数据(来自数据库)。当我使用“ find.all()”时,Play Framework Server崩溃,因为这会占用大量内存。
我试图将all()查询限制为10(每页)。但是我不能。 并且我尝试使用findPagingList(length),但是我不能,因为在新版本的播放器中,Finder中没有findPagingList方法,最接近的是无法设置页面大小的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);
和我的 controller类(UsersController)
在下面的代码中,我希望将查询限制为从“开始”开始以每页“长度”记录开始打印记录,如服务器端数据表发送的参数
Server-side data-tables Sent parameters
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();
如果有任何不清楚的地方,请问一下,我会尽力提供尽可能多的信息。