2012-03-19 33 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