2014-03-06 38 views
1

我是新來玩框架,Ebean和ORM的一般和我有一個問題關於更新持久對象的字段。如何更新與Ebean和Play框架工作

我知道在hibernate中當你調用一個對象的set方法時,它會自動調用update方法在db中進行更新。 Ebean的工作是否類似?在玩遊戲的框架中,從我讀過的內容來看,當字段公開時,getters和setter會自動生成。說我有以下的類在我玩的項目:

@Entity 
public class Foo extends Model{ 
    public String bar; 
} 
public static void main(String a[]){ 
    Foo f = new Foo(); 
    f.bar = "foobar"; 
} 

我的問題有兩個部分:

1)不分配f.bar = 「foobar的」;重新編譯爲調用f.setBar(「foobar」);在玩?

2)如果是這樣,這個任務會自動調用模型的upadte方法還是需要顯式地更新每個域的更新方法?

感謝您的幫助:)

回答

2
  1. 是,播放會自動創建setter和getter方法,除非你定義自定義制定者或干將。

  2. 爲了保存您的數據,您必須調用model.save()或model.update(),賦值不會自動更新數據庫。

順便說一句,我建議你總是爲@ID字段編寫setter和getter,因爲它有時會導致非常奇怪的錯誤。

+0

嗨,奧梅爾,謝謝你的迴應。所以就像後續問題一樣,如果我希望字段能夠更新,那麼最好是手動定義我的setter方法並在其中調用更新?另外,如果我的@ID字段是自動入侵的,那麼沒有必要爲它設置一個setter? – Wonger

+1

是的,你可以編寫自己的setter和getter來自動更新,但是我不明白你爲什麼試圖做這樣的事情?只要在你改變之後調用model.save(),否則你可能會查詢數據庫而不是需要它。對於@ID字段,如果是自動遞增或不是,則無關緊要,只需定義setter和getter,正如我所說的那樣會導致一些奇怪的錯誤。 –