我在第一时间使用Playframework与Ebean结合使用。
现在我想使用MySQL作为数据库,所以我添加了:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/TestDb"
db.default.user=root
db.default.password="test"
到我的Application.conf文件。
我在Application.conf文件中禁用了evolutionplugin,因为我不想使用它。
evolutionplugin=disabled
我为我的模型添加了ebean默认位置:
ebean.default="models.*"
在我的包装模型中,我有一个像这样的用户类:
import play.db.ebean.Model;
import javax.persistence.Id;
public class User extends Model {
@Id
private Integer id;
private String firstname;
private String lastname;
private String email;
private String token_facebook;
private String token_google;
private String reg_date;
private String id_facebook;
private String id_google;
public static Finder<Integer, User> find = new Finder<Integer, User>(
Integer.class, User.class
);
}
现在我只想检索这样的每个用户:
User.find.all()
这给了我:
[error] play - Cannot invoke the action, eventually got an error: javax.persistence.PersistenceException: models.User is NOT an Entity Bean registered with this server?
[error] application -
! @6l806jcli - Internal server error, for (POST) [/register] ->
play.api.Application$$anon$1: Execution exception[[PersistenceException: models.User is NOT an Entity Bean registered with this server?]]
at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.8.jar:2.3.8]
at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.8.jar:2.3.8]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.8.jar:2.3.8]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.8.jar:2.3.8]
at scala.Option.map(Option.scala:145) [scala-library-2.11.1.jar:na]
Caused by: javax.persistence.PersistenceException: models.User is NOT an Entity Bean registered with this server?
at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:998) ~[avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:955) ~[avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:991) ~[avaje-ebeanorm-3.3.4.jar:na]
at play.db.ebean.Model$Finder.all(Model.java:258) ~[play-java-ebean_2.11-2.3.8.jar:2.3.8]
at controllers.Register.register(Register.java:21) ~[classes/:na]
我的数据库包含我的用户类所拥有的每个字段。
有人有想法吗?
答案 0 :(得分:11)
我发现了问题。
我忘了使用@Entity注释注释该类。
这解决了这个问题。