【问题标题】:How does updating work with Ebean and Play framework更新如何与 Ebean 和 Play 框架一起使用
【发布时间】:2014-03-06 03:08:12
【问题描述】:

我是一般框架、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 方法还是我需要显式地创建更新方法来更新每个字段?

感谢您的帮助:)

【问题讨论】:

    标签: java playframework playframework-2.0 ebean


    【解决方案1】:
    1. 是的,play 会自动创建 setter 和 getter,除非您定义了自定义 setter 或 getter。

    2. 为了持久化你的数据,你必须调用model.save()或者model.update(),assignments不会自动更新数据库。

    顺便说一句,我建议您始终为@ID 字段编写setter 和getter,因为有时它会导致非常奇怪的错误。

    【讨论】:

    • 您好,Omer,感谢您的回复。因此,作为一个后续问题,如果我希望能够更新字段,那么最好手动定义我的 setter 方法并在其中调用 update ?另外,如果我的@ID 字段是自动入罪的,那么就不需要设置器来正确了吗?
    • 是的,您可以编写自己的 setter 和 getter 进行自动更新,但我真的不明白您为什么要这样做?只需在您更改任何内容后调用 model.save() ,否则您可能会查询超出需要的数据库。而对于@ID 字段,不管是不是自动递增,只要定义setter 和getter,正如我所说的,它会导致一些奇怪的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多