如何覆盖生成的数据库表类中的接口方法?

时间:2015-12-17 10:31:44

标签: android greendao android-database greendao-generator

我在我的Android项目中使用GreenDao并且我已经成功生成了我的数据库模式,但我遇到了一个问题。我生成的类需要实现一个与db无关的接口。在生成器中,我使用了以下方法:

replace ([columnA], 'GO' + char(13),'')

然后在生成之后,类在其标题中具有此接口的实现注释,但当然代码中没有Override方法。我尝试在生成器项目中使用我的接口放置一个包但是,方法永远不会自动存在。我应该在

中手动插入它们

myEntity.implementsInterface("com.my.app.myinterface");

部分

1 个答案:

答案 0 :(得分:0)

根据GreenDAO documentation,您不需要编写任何方法,因为每次运行都会覆盖类(这意味着您将执行的每项更改都将被删除),如果您需要自己的行为,则可以使用Keep Sections :

保留部分

  

每个生成器运行时都会覆盖实体类。为了允许向您的enities添加自定义代码,greenDAO具有“保留”部分。要启用它们,请在架构上使用enableKeepSectionsByDefault(),或在所选实体上使用setHasKeepSections(true)。启用后,将在实体中生成三个保留部分:

// KEEP INCLUDES - put your custom includes here
// KEEP INCLUDES END
...
// KEEP FIELDS - put your custom fields here
// KEEP FIELDS END
...
// KEEP METHODS - put your custom methods here
// KEEP METHODS END
  

现在,您可以将自定义代码放在KEEP [...]和KEEP [...] END之间。并且不要触摸KEEP注释。保留部分内的代码在代码生成期间保留。备份或提交代码是个好主意,以防出现意外情况。

另请查看this related question