我想为我的greenDAO实体添加一些自定义代码。我看到有类似保护区的东西。但我不喜欢将生成的类检入我的git存储库。我想为此使用继承。
即。我有一个实体User
。所以我希望greenDAO生成一个名为UserBase
的类。我希望通过User
扩展并实现这样的方法:
public String getFullName() {
return this.first + " " + this.last;
}
其中first
和last
是托管属性。
但我不知道如何告诉greenDAO使用类User
而不是生成的实体UserBase
。有没有办法做到这一点?
答案 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/