无法为Playframework导入com.avaje.ebean.Model

时间:2016-02-29 23:48:52

标签: java eclipse playframework

我之前使用过Playframework 2.1.2。现在我尝试使用最新版本。我尝试在2.1.2中导入play.db.ebean.Model,但它没有用。然后我发现这被com.avaje.ebean.Model取代了。但是在jdk 1.8.0_45中没有包com.avaje...

我相信我犯了一个绝对愚蠢的错误,但我看不到它......我如何设置Play与Ebean合作?

由于

3 个答案:

答案 0 :(得分:1)

好的,你正在使用Play 2.4.6。你读过JavaEbean documentation了吗?我认为文档很清楚。

步骤:

要启用它,请将Play Ebean插件添加到project/plugins.sbt中的SBT插件:

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")

然后修改您的build.sbt以启用Play Ebean插件:

lazy val myProject = (project in file(".")).enablePlugins(PlayJava, PlayEbean)

application.conf

中指定模型的位置
ebean.default = ["models.*"]

此后运行./activator clean run。这将更新和下载所有必需的依赖项,包括Ebean依赖项!

之后创建您的模型,如:

package models;

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

import com.avaje.ebean.Model;
import play.data.format.*;
import play.data.validation.*;

@Entity
public class Task extends Model {

    @Id
    @Constraints.Min(10)
    public Long id;

    @Constraints.Required
    public String name;

    public boolean done;

    @Formats.DateTime(pattern="dd/MM/yyyy")
    public Date dueDate = new Date();

    public static Finder<Long, Task> find = new Finder<Long,Task>(Task.class);

}

答案 1 :(得分:1)

我遇到了同样的问题,并且几个小时都在绞尽脑汁!我仔细地阅读了文档,然后尝试了一些不起作用的不同组合。总之...

如果您正在使用Eclipse(我只是假设),请尝试在命令行上运行activator eclipse。它会将play-ebean.jar添加到.classpath中,以便Eclipse知道它在哪里。然后,确保在Eclipse中刷新项目。 play-ebean.jar应出现在Referenced Libraries下,您将能够将com.avaje.ebean.*导入到模型类中。

答案 2 :(得分:0)

根据最新版本(请参见文档:https://www.playframework.com/documentation/2.6.x/JavaEbean#using-model-superclass

您将需要导入“ io.ebean.Model”而不是“ com.avaje.ebean.Model”