问题标签 [greendao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
211 浏览

greendao - 为什么道大师没有非抽象的 OpenHelper 类?

为什么greendao的生成代码没有提供来自DaoMaster的非抽象OpenHelper类?它只提供 DevOpenHelper,我假设它仅用于开发模式。

史蒂夫

0 投票
2 回答
582 浏览

greendao - 如何在没有 Eclipse 的情况下编译 greenDao 示例?

如何在没有eclipse的情况下编译GreenDao示例和DaoExampleGenerator?

0 投票
3 回答
1858 浏览

android - 使用 Green-DAO 持久化双向实体

你可能还记得我之前关于 Green DAO 中双向关系的问题,我有一个由对话和消息组成的聊天。
每条消息都有一个父对话,并且对话有一个消息列表。

当我尝试添加新消息时,只要我不关闭应用程序,它就可以完美运行。
这是我用于向现有对话添加消息的代码:

我现在有执行此操作的代码:

当我下次打开应用程序并调用conv.getMessageList()时,结果为空ArrayList

我究竟做错了什么?

编辑:

我更改了我的代码,现在它看起来像这样:

不幸的是,现在比以往任何时候(即使在同一次运行中),仍然调用conv.getMessageList()返回一个空的java.list.

编辑2:

这是生成器的代码(这不是真正的代码,而只是对问题重要的代码。

编辑 3

现在,而不是打电话给conv.getMessageList();我运行这条线,它工作正常。

我怀疑我或 greenrobot 在实施这一切时会遇到一个主要问题。

这是同时运行上述代码的问题Session.runInTx吗?

0 投票
2 回答
411 浏览

java - 使用 stORM 或替代方法使用外键进行 Android SQLite 查询

我有以下型号

我有一个列表视图,它根据用户想要查看的类别显示内容。

类别数据

如果用户只想查看 category_id = 2 和 4 的地点。

我如何对数据库进行查询以返回具有 category_id = 2 和 4 的地点列表。

我正在为数据库使用stORM库。

他们具有以下功能来进行查询。

0 投票
1 回答
542 浏览

greendao - 如何为一个实体创建多个表?

如何为一个实体创建多个表?

0 投票
2 回答
838 浏览

android - 保留部分在生成时被删除

我正在使用 GreenDAO v1.2.0 为 Android 应用程序生成实体类。

我已经在我的模式上设置了 enableKeepSectionsByDefault(),并且在我生成的类中得到了这些注释行:

我在注释之间放了一些自定义方法,但是每次重新生成时都会删除自定义方法。

我还需要做些什么才能使其正常工作吗?

0 投票
1 回答
3133 浏览

android - 如何将多个 greenDAO Tx 操作合并到一个事务中?

我的应用程序使用远程 REST API 并使用 greenDao 填充本地数据库。我有一个 AsyncTask 类的服务:

在每个插入方法中,我都有 insertOrReplaceInTx,我主要使用它来提高性能。

如果任何方法无法检索数据,我需要放弃结果。它应该通过相同的交易来完成。

mDaoSession.callInTx(callable)我想知道在方法内部包含我的插入方法调用是否正确insertOrReplaceInTx。我对吗?

此外,如果引发异常,我如何放弃交易 - 它是通过 greenDao 自动完成的吗?

0 投票
2 回答
3851 浏览

android - greendao:调试查询的方法?

有什么方法可以让正在对 Logcat 执行的greendao吐出查询?我只是想确保一切正常,在习惯系统的同时拥有它是一个很好的功能。

0 投票
2 回答
2559 浏览

android - 将正确的上下文传递给 greendao 的 OpenHelper 构造函数

如果我理解正确,在使用 DB 时,我必须执行以下操作

但是,如果我尝试在不扩展活动或服务的类中执行此操作,我根本无法传递它们的上下文。

打开我的数据库的正确方法是什么?应该在哪里做?

如果你能提供除官方greendao之外的一些教程链接(我在那里找不到答案),那就太好了。

0 投票
1 回答
1554 浏览

android - 封闭数据库;自动同步导致“尝试重新打开已经关闭的对象:SQLiteDatabase”异常

我正在使用 GreenDAO ORM 创建一个 Android 应用程序,在此之上具有一个通用的 crud 服务层。我有一个包含对我的 DaoMaster 以及我的 SQLiteDatabase 的静态引用的单个文件:

启动应用程序时,我调用 DATABASE.Initialize(),当我的主 Activity 被销毁时,我调用 DATABASE.CloseDatabase()。当应用程序首次启动时,它会执行初始同步,并且检索到的实体通过它们各自的 crud 服务实例发送,该实例处理各自的 DAO 以将实体持久保存到该数据库中,如下所示。

但是,即使应用程序未运行,我的定期同步也需要访问此数据库。几个同步将经常运行。当同步运行时,在从同步调用的类中,我调用 DATABASE.Initialize(),但是当它到达我的第一个 crud 服务查询时,它给了我这个错误:

如果有人可以帮助我找出我做错了什么,将不胜感激。我基本上只需要知道两件事:

1)由于我在 DATABASE.java 中的变量是静态的,它们将被缓存直到 GC 运行。我可以/应该调用 GC 或 finalize(),还是只需要在 CloseDatabase() 中将它们设置为 null?

2)我什至可以关闭我的数据库,因为我的同步依赖于它,如果我不关闭它,我不会遇到泄漏吗?

提前致谢。

编辑:我环顾四周,了解到静态变量实际上确实会持续到 GC 运行。所以,我改写了#1。

编辑 2:我已经更新了我的 DATABASE.java 和对其 Initialize 方法的调用以使用应用程序上下文,它似乎已经清除了一切。当同步重新运行时,我现在在第一个 crud 服务查询中收到 NullPointerException。

编辑 3:空指针异常现已修复。我不小心导致它打开了一个新数据库并且其中不存在实体。