我是新手一般玩框架,Ebean和ORM,我有一个关于更新持久对象字段的问题。
我知道在hibernate中调用对象的set方法时,它会自动调用update方法在db中更新。 Ebean的工作方式是否类似?使用play框架,根据我的阅读,当字段公开时,getter和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方法,还是我需要显式更新每个字段的更新方法?
感谢您的帮助:)
答案 0 :(得分:2)
是的,除非您定义自定义设置器或getter,否则play会自动创建setter和getter。
为了保留您的数据,您必须调用model.save()或model.update(),分配不会自动更新数据库。
顺便说一下,我建议你总是为@ID字段编写setter和getter,因为有时它会导致非常奇怪的错误。