问题标签 [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.
android - 在 android 上具有多进程的 greendao 会话
我正在从事一个大型项目,该项目涉及许多不同的应用程序同时与同一个数据库进行通信。
我一直在将我们的系统更改为 using greendao
,看看它是否会给我们带来优于 Android 的性能改进ContentProvider
。
问题:
每次应用程序需要与数据库通信时,我都会让它获取一个新DaoSession
的然后执行操作。我从不重复使用任何DaoSessions
. 如果每个应用程序都有自己的应用程序会更好DaoSession
吗?
请记住,我担心同时从数据库读取/写入所有这些应用程序之间的并发性。
- 目前我每次需要插入时都这样做:
this.daoMaster.newSession().getMyDao().insert(myDao);
- 或者我应该
DaoSession
从其他地方获得对 a 的引用并这样做:
this.daoSession().getMyDao().insert(myDao);
android - dao 与 greendao 并发插入;执行 BEGIN EXCLUSIVE 时数据库被锁定
当同一进程中有两个不同的线程试图同时保持时,我们正在测试 greendao 的并发问题。
我们在同一个进程中生成两个线程,并让它们同时插入 100 个随机填充的 dao。
绿道 1.3.0 版
如果我们做错了什么或者您需要更多信息,请告诉我,谢谢!
我们不断收到此错误:
这是我用于插入 dao 的代码:
android - greendao 在多进程环境中工作吗
greendao
打算在多进程环境中工作?
查看源代码,由于缓存的处理方式和其他一些原因,它似乎不支持多进程环境。我正在寻找开发人员的确认或更多详细信息。
通过我们当前的测试,我们让它在一个多线程的进程中运行良好。然而,当我们引入一个访问同一个数据库的单独进程时,我们经常会遇到database is locked
异常。
我们的测试启动了两个不同的进程,它们都启动了两个线程,这些线程随机生成daos
到同一个数据库中。我们还有第三个进程,它启动两个线程,这些线程不断地daos
从同一个数据库中加载所有数据。
android - greenDAO 生成器给出了没有意义的控制台错误
总的来说,我对 Android 开发还很陌生,而且我什至从未使用过 greenDAO。但是在花了很多时间研究我的生成器类(我在其中建模我的实体)之后,我终于能够生成一些看起来类似于 GitHub 上给出的示例的东西。
然后,我将代码作为 java 应用程序运行以生成我的 DAO 文件,就像 greenDAO 上的文档所说的那样。文件已成功生成,但是我在 Eclipse 的控制台中确实得到了这一行:
由于文件已生成,我真的不确定是否需要担心。但我不明白的是,当我使用“对多”关系时,为什么会提到“一对一”关系,正如我的代码中所见。(支票簿实体中可以有许多交易实体,我打算使用每个支票簿实体的名称将交易与它联系起来。)
我需要返回并修复我的部分代码吗?请询问我是否需要澄清任何事情,并感谢您的时间!
android - 在插入数据库之前对大量数据进行排序
我需要下载一个大的 json 字符串。我为此使用aQuery。然后我需要在对象列表(10k +)中解析这个字符串(我为此使用 Gson 库)并将这个列表插入数据库(使用 GreenDAO 创建)。但在插入之前,我需要按我的对象字符串字段对该列表进行排序。我正在使用 Collator 类进行排序,因为该文件可能使用不同的语言。问题是:如何使用尽可能少的内存来做这样的事情?
现在我下载一个字符串(+String,我也尝试过使用 Streams)然后解析它(+List)然后对其进行排序(更多对象)。我在一个单独的线程中做它,但即使它完成了内存也没有释放。我认为如果我可以在数据已经在数据库中时对数据进行排序(而不是在选择它时,它会很慢),那么这可以解决,但我不知道如何。
这是一些代码。这是从文件加载数据。从文件加载时内存也存在同样的问题,我使用 InputStream 而不是将 JSON 字符串放入内存。
这是解析器线程。有两个构造函数 - 一个用于从 Web 加载(字符串参数),另一个用于从文件加载(InputStream 参数)。
所有 GreenDAO 对象都是静态的。解析仅在第一次启动(从文件)和通过“更新”按钮单击(从网络)时完成。我注意到,即使我在初始(从文件)解析完成后重新启动我的应用程序,它也会使用与第一次完成解析后一样多的内存。
android - greendao 按相关表中的字段排序
有没有办法用greenDao按相关表中的字段排序?例如,我有一张汽车表和一张司机表。每辆车都有一名司机。现在我想查询(例如蓝色)汽车并按司机姓名排序
android - GreenDao reload an object when using IdentityScope != None
I have the case that I operate on some object I got from greenDao and in some cases I have to revert the changes. I only got this to work with IdentityScope.None - with some IdentityScope I found no way to do that - even refresh() which sounded promising was not bringing back the data from the database. Is there any way to do this with a IdentityScope?
android - greenDao 架构升级
我看到了另一个关于使用 green dao 进行架构升级/迁移的问题(这里)
该答案中有很多链接可以在进行架构升级时使用一个好的模式 - 但是没有示例说明您对数据实际执行了什么操作以正确迁移它,而且我找不到任何东西。
就我而言,我的迁移非常简单——我不希望转换任何现有数据,我只需要在我的模式中添加一些新表,我怀疑这是一种相当常见的情况。
在不删除用户已经保存的数据的情况下,将新表添加到架构中的最简单方法是什么?一个具体的例子将不胜感激。
如果 greenDao 提供了一个类似于 DevOpenHelper 的类,该类将简单地添加以前不存在于模式中的新表/列,而不首先删除现有的表/数据,那就太棒了。
android - 如何清理/删除greenDao数据库
目前我正在这样做:
但是,当我尝试将实体添加到数据库时,我收到崩溃日志,说该表不存在
Edit1:我知道发生这种情况是因为数据库已锁定并且尚未创建表。所以我将这个问题简化为问题 - 如何知道表是否锁定在 grrenDao/Sqlite 中?
android - GreenDao 无法建立数据库
我将 GreenDao 用于我的 Android 项目。但是有个小问题!我无法启动我的应用程序,因为我的数据库连接出现了一些故障
错误:
我找不到解决方案,有人说,这取决于我的 DevOpenHelper 语句中的“this”。但所有这些解决方案都无济于事。
这是代码: