问题标签 [greendao-generator]

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 回答
1645 浏览

java - 指定自动增量时,GreenDao 生成带有 id 的构造函数

尝试为实体创建 DAO 并将 id 指定为自动增量时,这似乎是一个非常奇怪的问题。

我的代码:

和生成的 DAO 文件:

既然我已将 id 指定为自动增量,为什么它会生成带有 id 参数的构造函数?这就是自动增量的点,因此您不必自己指定它。

有什么建议么?

0 投票
1 回答
682 浏览

android - GreenDAO ToOne 关系不起作用

我正在实现一个用户类:

和公司

@ToOne 应该可以正常工作,因为我可以使用 TABLE 指令看到生成的 UserDao:

在应用程序流程中,我创建了一个用户实例(不是数据库)并为其设置了一个公司对象。

然后我打电话:

但是我的应用程序没有指定公司不能为空。当我打开UserDao生成的类时,我看到 bindValues 在保存用户之前从不创建公司。

为了创建子实体,我必须做什么?

编辑

好的,我刚刚读到关系不是由 ORM 自动管理的。我没有看到使用 lib hehe 的很多好处。

0 投票
1 回答
244 浏览

android - 我们如何解决 Greendao DB 关闭错误?

当我们可以创建greendao应用程序我们没有得到任何关闭greendao db的默认方法那么我们如何在Application类上关闭db

因为我们在 Application 类上添加了以下代码

静态类 YourAsyncTask 扩展 AsyncTask {

我们可以将 daoSession 对象用于整个应用程序,我们如何获得以下错误的解决方案

完成尚未停用或关闭的光标。database = /data/user/0/com.onetouchprotect/databases/google_app_measurement_local.db,table = null,query = select count(1) from messages android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭游标或数据库对象在 android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:50) 在 android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java) 的 android.database.sqlite.SQLiteCursor.(SQLiteCursor.java:98) 打开:

0 投票
0 回答
388 浏览

android-studio - GreenDAO 3 与 Android 工作室

我曾经在 Android Studio 中使用 GreenDAO,在 2.1.0 版本中,为了将 GreenDAO 包含到我的项目中,我将创建一个生成器模块。在模块的 build.gradle 中,我将添加这一行。

然后我将定义我的实体,运行 gradle build 任务并生成实体。现在我听说了 GreenDAO 版本 3。我找不到像 2.1.0 版那样向我展示完整过程的完整教程。在他们的主页上,我可以看到一个关于符号的简短示例,但根本不知道如何“向我的项目添加 greenDAO 3 支持”。你能给我详细说明吗?

0 投票
1 回答
424 浏览

android - 删除大型 sqlite 表

我陷入了独特的境地。在我的应用程序中,我有本地数据库。不知何故,其中一张表充满了垃圾数据,数据库变得非常庞大。到我知道时,大小已超过 1 GB。因此,我不断收到数据库锁定异常,因为读取该表上的垃圾行非常慢。调试后,我弄清楚它是哪个表,现在我想删除它(删除整个表或删除所有行)但是每当我对该表执行任何操作时,数据库都会被锁定并发生 ANR。所以我不知道如何摆脱那张桌子。我无法卸载应用程序。

请注意,我在我的 android 应用程序中使用 GreenDao。

我已经尝试过以下事情

在所有情况下。它只是产生 ANR.and 应用程序数据库被锁定。

编辑:我也在单独的线程中尝试过,它只是避免了 ANR,但没有删除表并且数据库仍然被锁定。

锁定后,每当其他线程尝试写入数据库时​​,我都会得到这个,这很明显。

我也得到这个,

这清楚地表明它无法执行"DELETE FROM 'mytable'"此特定查询,因此无法执行锁定。

0 投票
3 回答
1871 浏览

android - Greendao Autoincrement插入记录不起作用

我正在使用 greendao 3.2 并制作实体和数据库。它一切正常。但是在创建必须自动递增的 Id 属性时我遇到了麻烦。我知道如何在 SQL 中做到这一点,但使用 greendao 它给了我更多的困难。

我已宣布我的实体正常。让我给你举个例子。

并插入像

但它与 ID 0 的重叠记录一次又一次。它没有按预期工作。

请告诉我是什么原因。我也尝试过使用插入,但它显示相同的结果。请帮助我陷入困境。

0 投票
1 回答
429 浏览

android - DaoException:没有为类注册 DAO

我正在尝试GreenDao对我的Android项目执行连接,这是我的代码:

但我收到此错误:

我不确定错误在哪里。我在Dao Generated文件夹中有 TeamDao 类

我会很感激任何帮助。谢谢。

0 投票
1 回答
101 浏览

java - 由于 serializationVersionUID 警告,无法完成构建

我们目前在这个项目中使用 greenDAO3。我相信我们在某个时候使用了 greenDAO2,因为我们似乎使用的是旧的生成器类。

因此,我试图在数据库中添加一个新表,以在我们的应用程序中添加一个新功能。我对 greenDAO 不是很熟悉,但我认为让它在构建时使用 Gradle 自动生成文件会更容易。

一切正常,但是在我的 root.gradle 和 app.gradle 添加了一些东西之后,我得到了这个错误。

这些是我所做的更改。

当我禁止警告时,它会进入db文件夹中的下一个可序列化类。我真的不想抑制警告,因为在这种情况下这似乎是不好的做法。

0 投票
2 回答
3083 浏览

android - java.lang.Object 类型无法解析。它是从所需的 .class 文件 android studio 中间接引用的

上面的错误有很多问题,但大多数都与 eclipse 有关,对我来说,它发生在 android studio 以及到目前为止运行良好的项目中。

我的 android 项目一直运行良好,然后突然开始出现此构建错误。不知道问题到底出在哪里,但我看到日志中提到了一些 greendao 的痕迹。

FAILURE:构建失败并出现异常。

任务 :driver_module:greendao FAILED 发现 2 个问题,解析“/Users/../Code/MyApplication/driver_module/src/main/java/../sdk/MyEvents.java”:#0 @1:java 类型.lang.Object 无法解析。它是从所需的 .class 文件中间接引用的(ID:16777540;错误:true)#1 @1:无法解析类型 java.lang.String。它是从所需的 .class 文件中间接引用的(ID:16777540;错误:true)

编辑:我发现这有点接近,但这对我也不起作用。 https://github.com/greenrobot/greenDAO/issues/931

0 投票
0 回答
28 浏览

android - 升级sqlcipher版本,使用greendao作为orm

我已经使用带有 sqlcipher 的 greendao 生成器来加密数据库。但是当我将 sqlcipher 从 3.5.7 升级到 4.4.3 时,我的应用程序崩溃了,因为我的应用程序无法访问旧的加密数据库。我已经搜索了一个解决方案,发现我需要在 SQLiteDatabaseHook 的 postKey 中运行 PRAGMA cipher_migrate 来迁移我的数据库。

过程必须按照此链接 https://discuss.zetetic.net/t/upgrading-sqlcipher-for-android-from-3-to-4/3580完成 但我无法弄清楚如何使用 greendao 执行此操作或?非常感谢有关此升级的任何帮助

我的自定义开放助手类:

这就是我初始化数据库的方式