Добавление пользовательского кода в объекты greenDAO
Я хочу добавить собственный код в мои объекты greenDAO. Я видел что-то вроде охраняемых районов. Но мне не нравится идея регистрировать сгенерированные классы в моем git-репозитории. Я хотел бы использовать наследование для этого.
т.е. у меня есть сущность User
, Поэтому я хочу, чтобы greenDAO генерировал класс с именем UserBase
, Это я хочу продлить на User
и реализовать такой метод:
public String getFullName() {
return this.first + " " + this.last;
}
куда first
а также last
являются управляемыми свойствами.
Но я понятия не имею, как сказать GreenDAO использовать класс User
вместо сгенерированного объекта UserBase
, Есть какой-либо способ сделать это?
2 ответа
Я нашел способ, как решить эту проблему:
Вы можете ввести родителя для каждой сущности:
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();
}
Недостатком здесь является то, что вы должны объявить сгенерированные геттеры как абстрактные методы для доступа к ним.
Общий подход заключается в использовании "сохранить разделы" в сгенерированных объектах. Сохранение разделов позволяет добавлять члены и методы непосредственно в сгенерированную сущность. Проверьте здесь для деталей: http://greendao-orm.com/documentation/modelling-entities/