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

kei*_*ort 5 orm android greendao

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

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

public String getFullName() {
    return this.first + " " + this.last;
}
Run Code Online (Sandbox Code Playgroud)

在哪里firstlast是托管属性.

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

kei*_*ort 7

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

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

Entity user = schema.addEntity("User");
...
user.setSuperclass("UserBase");
Run Code Online (Sandbox Code Playgroud)

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

public abstract class UserBase {

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

  public abstract int getFirst();
  public abstract int getLast();
}
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*ger 7

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