문제

I want to add some custom code to my greenDAO entities. I saw there is something like protected regions. But I don't like the idea to check in the generated classes to my git repository. I'd like to use inheritance for this.

i.e. I have an entity User. So I want greenDAO to generate a class called UserBase. This I want to extend by User and implement a method like this:

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

Where first and last are managed properties.

But I have no idea how to tell greenDAO to use the class User instead of the generated entity UserBase. Is there any way to do this?

도움이 되었습니까?

해결책

I found a way how to solve this:

you can enter a parent for each entity:

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

So you can implement the UserBase as an abstract class.

public abstract class UserBase {

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

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

The disadvantage here is, that you have to declare the generated getters as abstract methods to access them.

다른 팁

The common approach is to use "keep sections" in the generated entities. Keep sections allow to add members and methods directly in the generated entity. Check here for details: http://greendao-orm.com/documentation/modelling-entities/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top