2012-03-19 34 views
3

为了让我自己熟悉Play 2.0 Framework,我一直在关注Play 2.0 introduction tutorial。不幸的是,我无法让Ebean的持久性工作。我Task.java看起来是这样的:在Play 2.0中不起作用的Ebean持久性

package models; 

import java.util.*; 

import play.db.*; 
import play.data.validation.Constraints.*; 

import javax.persistence.*; 

@Entity 
public class Task { 

    @Id 
    public Long id; 

    @Required 
    public String label; 

    public static List<Task> all() { 
     return find.all(); 
    } 

    public static void create(Task task) { 
     task.save(); 
    } 

    public static void delete(Long id) { 
     find.ref(id).delete(); 
    } 

} 

但在运行一个应用,findsave不能得到解决。我想我忘了导入一个模块,但我不知道它是哪一个...

回答

2

正如丹W.已经说了,你需要扩展Model类:

@Entity 
public class Task extends Model { 
    .... 
} 

您还可以添加以下静态梅索德:

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

还要确保您添加以下行到您的application.conf文件启用数据库:

db.default.driver=org.h2.Driver 
db.default.url="jdbc:h2:mem:play" 
ebean.default="models.*" 
7

我相信你需要延长Model类。

@Entity 
public class Task extends Model { 
    .... 
} 

希望这会有所帮助。

+0

哦是的,我是s愚蠢的......但似乎也没有效果。我收到一个错误,“模型”无法找到......我很困惑! – wowpatrick 2012-03-19 18:41:05

+0

@wowpatrick尝试导入:play.db.ebean.Model,并在application.conf中启用“ebean.default =”models。*“”行 - 在提供的链接底部找到它。 – 2012-03-19 20:06:23

+0

我错误地认为'play.db. *'也会包含'play.db.ebean。*'。但它仍然导致原来的错误... – wowpatrick 2012-03-20 13:03:20