GreenDAO:从现有实体生成 DAO 类导致关系问题

Posted

技术标签:

【中文标题】GreenDAO:从现有实体生成 DAO 类导致关系问题【英文标题】:GreenDAO: generate DAO class from existing entity cause issue with relation 【发布时间】:2016-06-24 12:58:40 【问题描述】:

我的所有实体都在 .jar 中,因为我需要在 API 中将它们用于 webapp 和 android 应用程序。

经过研究,我发现greenDAO只能为我的实体生成DAO类,我只需要使用setSkipGeneration(true)

这项工作很好,但是,我尝试使用 2 个具有一对多关系的实体进行测试。 问题是:

我的实体 A 引用了实体 B,因此我使用 addToOne 方法将此关系放入我的 DAOGenerator 中。但是,greenDAO 生成器在我的 EntityDAO 上生成此方法:

@Override
protected void attachEntity(MyEntity entity) 
    super.attachEntity(entity);
    entity.__setDaoSession(daoSession);

但是,entity.__setDaoSession(daoSession) 是不可能的,因为我的实体需要在其类中有一个 DaoSession 对象,但正如我一开始所说的那样是不可能的。

当我使用setSkipGeneration(true) 时,我认为我在做正确的事情,但我可能忘记了一些事情,你有我的问题的答案吗?

【问题讨论】:

【参考方案1】:

您要求生成器为您的实体创建方便的方法来处理关系,addToOne。这些方法需要通过DaoSession 完成的数据库访问。如果由于某种原因你在课堂上买不起DaoSession,就不要要求关系方法。

【讨论】:

以上是关于GreenDAO:从现有实体生成 DAO 类导致关系问题的主要内容,如果未能解决你的问题,请参考以下文章

GreenDao 使用二

GreenDao源码分析

Android GreenDao 在组件化项目中的一个问题 - 2018年7月5日21:15:14

Android:安卓学习笔记之GreenDao 的简单理解和使用

greenDao中新实体添加代码无法自动生成

Mybatis自动生成实体类dao接口和mapping映射文件