问题标签 [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 投票
2 回答
1994 浏览

android - 如何使用 greenDAO 实现观察者模式?

我想实现一个 ListView,它会自动更新本地数据库(观察者模式)的任何更改。我已经读到 Loaders 和 ContentProviders 目前不能很好地与 greenDAO 配合使用,所以我想知道推荐的方法?

0 投票
1 回答
907 浏览

android - 在 Green-DAO 中处理双向 1:m 的正确方法

在处理双向 1:m 关系时,将新对象插入 Green-DAO DB 的正确方法是什么?

可以说,我有一个聊天应用程序,它有一个对话实体和一个消息实体。每个对话都有一个消息列表,每个消息都有一个父对话。

我现在做的是:

在我看来,我没有正确执行此操作,我很想获得一些指导广告以正确地执行此操作。

提前致谢...

编辑:
从我的评论中可以看出,在尝试按照我在这里编写的方式实现代码之后,我得到了一个null而不是我试图链接的对话。
我稍微改变了我的代码,现在它看起来像这样:

但同样,我的问题是我不确定连接现在是双向的。
我现在应该更新threadsDao吗?

0 投票
1 回答
782 浏览

android - GreenDAO QueryBuilder 动态连接条件

我需要验证一些条件来创建完整的查询:

那么是否可以连接查询构建器条件并动态创建查询构建器?

0 投票
1 回答
1537 浏览

android - greendao 左加入困境

我正在使用greenDao,我需要从几个类似于左连接功能的表中提取数据。这是我的模式生成器的引用:

当我做:

我只获取零售商表本身的内容,但是我还需要为空的 Shop 实体值。只有在我打电话getShops()给实体后才会被填满。我需要在第一次查询时填写实体。它是怎么做的?

谢谢。

0 投票
1 回答
565 浏览

android - GreenDao 在反序列化时重置 daoSession

我使用序列化,但是当我反序列化一个对象并尝试解析一个关系时,我捕获了这个异常:

实体与 DAO 上下文分离

我认为因为 daoSession 和 myDao 是瞬态的,并且在序列化时无效。

如何安全地重置 daoSession 和 myDao?

0 投票
2 回答
5518 浏览

android - greendao greenDao 何时从会话缓存中更新数据库

问题是:GreenDao 什么时候从会话缓存中更新 sql 数据库?

假设我正在从数据库中查询现有实体,然后更改其中一个属性(字段)。无论如何,这些更改都是在不指导 sql 数据库的情况下执行的。

那么 - 我应该对实体进行更新吗?GreenDao 何时将其会话缓存刷新到数据库本身?

0 投票
2 回答
1249 浏览

android - 如何使用绿色 DAO 知道所有打开的数据库连接..?

大家好,我是 android 新手并使用绿色 DAO 来管理数据库,但我经常得到一个数据库未关闭异常,因为我在 Application onTeriminate() 中这样做,我在整个应用程序中只维护数据库的单个连接,但在某些情况下,当我的应用程序转到后台并恢复数据库连接对象变为空,我通过在使用之前检查对象的空性来处理问题,但现在我经常收到异常

android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭此处打开的游标或数据库对象

请帮助我如何处理这个

提前致谢

lang.IllegalStateException: 没有数据库锁!01-03 09:39:18.688: E/System(3063): 在 android.database.sqlite.SQLiteDatabase.verifyLockOwner(SQLiteDatabase.java:2090) 01-03 09:39:18.688: E/System(3063): 在android.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2182) 01-03 09:39:18.688: E/System(3063): 在 android.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2178 ) 01-03 09:39:18.688: E/System(3063): 在 android.util.LruCache.trimToSize(LruCache.java:197) 01-03 09:39:18.688: E/System(3063): 在 android .util.LruCache.evictAll(LruCache.java:285) 01-03 09:39:18.688: E/System(3063): 在 android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements(SQLiteDatabase.java:2143) 01-03 09 :39:18.688:E / System(3063):在android.database.sqlite.SQLiteDatabase。

关闭连接代码:

0 投票
2 回答
375 浏览

android - 将自定义代码添加到生成的实体类中

我正在使用google-http-java-client 库来简化我与 Web 的通信并自动解析服务器的响应。所以我需要通过注释 @Key(name) 来注释我的 POJO 类的成员,如下例所示

收到服务器的响应后,我想将这些实体保存到数据库中。所以我必须通过 GreenDAO 生成这个类。主要问题是如何将注释 @Key 插入生成的类中?是的,我知道我可以在生成的类中插入一些代码。本主题描述了这种能力。但据我了解,我只能插入自定义成员、方法和包含。

0 投票
1 回答
683 浏览

android - GreenDao - 在运行时确定数据库大小

我想知道如何获取我的数据库(当然是* .sqlite 文件)大小(以字节为单位)?

我目前的做法(不起作用)是: new File(DataManager.getInstance().db.getPath()).length()

但我每次 53,676~ 时都会得到相同的数字,这与数据库的内容无关,即使它是空的,我也会得到这个数字。

谢谢你。

0 投票
2 回答
8559 浏览

android - 如何构建一个 GreenDao 查询来加载通过 id 列表指定的所有项目?

我有一个字符串列表,每个字符串都是通过 GreenDao 持久保存的项目的唯一标识符。

如何构建允许我从数据库中加载所有这些项目的查询?

有没有可能用 QueryBuilder 来做,还是我需要回去写 SQL?