1. 程式人生 > >play框架orm層實現

play框架orm層實現

開啟Ebean的方法是在conf/application.conf裡開啟ebean.default="models.*"

先說下什麼是Ebean吧。Ebean是一個開源的Java ORM管理工具,

詳細資訊可以從官網http://www.avaje.org/瞭解,只要知道它是方便實體操作的框架是可以了。

要注意的一點是:Ebean好像和JPA不能同時用。我用了出錯嚴重,希望指點。

ebean.default="models.*"是conf檔案中預設的寫法,

它的意思是說這個ebean要管理的類(實體)在models包下面。

所以如果你的包不是這種結構要自己改過來,多個類(包)用逗號分開就行。

play提供了一種用獨立檔案進行配置的方法,

新建一個conf/ebean.properties檔案,把配置資訊寫裡面也行。有興趣的可以試試。

然後在實體類裡增加一個Finder。可以很方便的進行資料庫操作。可以參考

http://www.playframework.com/documentation/2.0.1/api/java/play/db/ebean/Model.Finder.html#Model.Finder(java.lang.String, java.lang.Class, java.lang.Class)

定義方式大致是:

Java程式碼  收藏程式碼
  1. public static Finder<A, B> finder = new
     Finder<A, B>(A.class, B.class);  

 其中A是主鍵的型別,B是實體的型別。

需要匯入的是

Java程式碼  收藏程式碼
  1. import play.db.ebean.Model.Finder;  

 依賴包是\repository\local\play\play-java-ebean_2.10\2.1.0\jars\play-java-ebean_2.10.jar.

這樣編譯會報錯,還需要依賴\repository\local\org.avaje.ebeanorm\avaje-ebeanorm-api\3.1.1\jars\avaje-ebeanorm-api.jar。

現在編譯可以通過,但有執行時異常

Java程式碼  收藏程式碼
  1. ClassNotFoundException: com.avaje.ebeaninternal.server.core.DefaultServerFactory  

 加入包\org.avaje.ebeanorm\avaje-ebeanorm-server\3.1.2\jars\avaje-ebeanorm-server.jar後又報

Java程式碼  收藏程式碼
  1. ClassNotFoundException: com.avaje.ebean.enhance.agent.EnhanceConstants  

 繼續加入包\org.avaje.ebeanorm\avaje-ebeanorm-agent\3.1.1\jars\avaje-ebeanorm-agent.jar

終於可以了。