将自定义代码添加到greenDAO实体

时间:2013-06-04 17:56:41

标签: android orm greendao

我想为我的greenDAO实体添加一些自定义代码。我看到有类似保护区的东西。但我不喜欢将生成的类检入我的git存储库。我想为此使用继承。

即。我有一个实体User。所以我希望greenDAO生成一个名为UserBase的类。我希望通过User扩展并实现这样的方法:

public String getFullName() {
    return this.first + " " + this.last;
}

其中firstlast是托管属性。

但我不知道如何告诉greenDAO使用类User而不是生成的实体UserBase。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:7)

我找到了解决这个问题的方法:

您可以输入每个实体的父级:

Entity user = schema.addEntity("User");
...
user.setSuperclass("UserBase");

因此,您可以将UserBase实现为抽象类。

public abstract class UserBase {

  public String getFullName() {
    return getFirst() + " " + getLast();
  }

  public abstract int getFirst();
  public abstract int getLast();
}

这里的缺点是,您必须将生成的getter声明为抽象方法来访问它们。

答案 1 :(得分:7)

常见的方法是在生成的实体中使用“保留部分”。保留部分允许直接在生成的实体中添加成员和方法。点击此处了解详情: http://greendao-orm.com/documentation/modelling-entities/