Java 通用控制器-播放框架

Java 通用控制器-播放框架,java,playframework,Java,Playframework,我给你看代码。它所说的不仅仅是文字 基本模型: import com.avaje.ebean.ExpressionList; import com.avaje.ebean.Model; import javax.persistence.Id; import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class BaseModel extends Model { @Id public Long i

我给你看代码。它所说的不仅仅是文字

基本模型:

import com.avaje.ebean.ExpressionList;
import com.avaje.ebean.Model;

import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public abstract class BaseModel extends Model {
@Id
public Long id;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public static <T extends Model> ExpressionList<T> find() {
    return null;
}
}
import com.avaje.ebean.ExpressionList;
导入com.avaje.ebean.Model;
导入javax.persistence.Id;
导入javax.persistence.MappedSuperclass;
@映射超类
公共抽象类BaseModel扩展模型{
@身份证
公共长id;
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共静态表达式列表查找(){
返回null;
}
}
基本控制器:

import com.avaje.ebean.ExpressionList;
import models.BaseModel;
import play.db.ebean.Model;
import play.libs.Json;
import play.mvc.Controller;

import javax.xml.transform.Result;

public class BaseController<T extends BaseModel> extends Controller {

private Model.Finder<Long,T> finder;

public  Result GetAll() {


    List<T> list = T.find().where().orderBy("name asc").findList();

    if (request().accepts("text/html")) {
        return ok(index.render(list));
    } else{
        return badRequest();
    }


    if (request().accepts("application/json")) {
        return ok(Json.toJson(list));
    } else {
        return badRequest();
    }
}
import com.avaje.ebean.ExpressionList;
导入模型.BaseModel;
导入play.db.ebean.Model;
导入play.libs.Json;
导入play.mvc.Controller;
导入javax.xml.transform.Result;
公共类BaseController扩展控制器{
私人模型。查找器;
公共结果GetAll(){
List List=T.find().where().orderBy(“名称asc”).findList();
if(request()接受(“text/html”)){
返回ok(index.render(list));
}否则{
返回请求();
}
if(请求()接受(“应用程序/json”)){
返回ok(Json.toJson(list));
}否则{
返回请求();
}
}
我对这份名单有意见

 List<T> data = T.find().where().orderBy("buildingTypeId asc").findList();
List data=T.find().where().orderBy(“buildingTypeId asc”).findList();
必需的
列表


查找
List
问题在于代码
List List=T.find().where().orderBy(“name asc”).findList();
方法无法返回
List
,因为它不知道
T
的对应类型。只有BaseController类知道它


我试过这样做:
List List=finder.where().orderBy(“name asc”).findList();
它可以工作,也许这就是你所需要的。

虽然在某些情况下,代码可能会说得比单词还多,但在这种情况下,一些解释文字会很有帮助(如错误消息或异常)。