问题标签 [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中是否有相当于CoreData和AFIncrementalStore
我们的 Android 应用程序中的数据已经开始变得更加复杂并且正在更新。因此,我需要保留通过 REST json 服务从后端提取的关系数据。我在想我应该在 android 设备上使用 SQL lite 数据存储,而不是我们当前使用的序列化字符串数据存储。
是否有类似于 Android 中 iOS 的 CoreData 和 AFIncrementalStore 的东西。我正在使用 SQL-Lite 研究 Green Dao,但不确定是否有更好的解决方案专门针对从 JSON REST 服务到 SQL lite 的 ORM。
java - GreenDao whereOr 和条件循环添加
我需要添加一些or
子句来查询。我需要循环执行。
我怎样才能or
正确添加这些条件,因为上面没有按预期工作。我想or
为每个症状添加。
android - GreenDao freemaker.jar 丢失
我刚刚为GreenDao下载了新的 jar 文件,以便为我正在构建的应用程序创建我的数据库。
在完成了对我的实体和它们之间的连接进行建模的所有过程之后,我尝试运行生成器项目,但是生成数据库的行出现了这个错误:
发生这种情况的行是:new DaoGenerator().generateAll(schema, src);
我在构建路径和lib
文件夹中只有greendao-generator-1.3.0.jar文件。
任何想法或解决方案都会非常有帮助。
ps 可以使用 1.2 版本的 freemaker.jar 吗?
编辑:现在,我从 sourceforge 下载了这个版本,并希望这实际上是我需要使用的。
android - 不覆盖指定参数的 InsertOrReplace 实体
我在使用 GreenDao 时遇到以下问题,不知道如何解决。我有一些实体 - 比如说 USER,它有 4 个潜在参数:FIRST_NAME、LAST_NAME、AGE、LOCAL_VAL,当我从服务器获取 USER 时,它只有 3 个参数:FIRST_NAME、LAST_NAME、AGE。现在,我猜测当我从服务器获取用户并使用 InsertOrReplace 时,这个用户(具有相同的 Id)会被覆盖,并且 LOCAL_VAL 中的值设置为 0,因为服务器不返回它。
一个天真的解决方案是使用他的 ID 从数据库中获取 USER 实体并检查 LOCAL_VAL 的值,如果它不等于 0,那么我们将它再次保存在来自服务器的新 USER 中。这个解决方案不好,因为它包含许多数据库访问。
是否可以不覆盖所有实体值?
(在我的场景中,这个 VAL 包含来自 1-N 关系的不同实体的 ID)
android - 在 1 个查询中查询多个实体
GreenDao 有 Query 支持,可以让我们以简单的方式查询数据库。我正在寻找是否可以执行以下操作。假设我想在一个查询中从不同的表中获取 sqlite db 3 实体。
就像是:
在 greenDao 中,每个查询对象都附加到 dao 对象,所以我对此有点怀疑
android - greendao-orm数据库锁定错误
我在使用 greendao 时遇到了 locket 数据库错误。我使用正确的库,一切工作了一段时间,但突然我收到以下信息:( 我有 JB 4.2.2 的 HTC Desire。AOPK) NoClassDefFoundError
05-21 19:45:47.639:E/AndroidRuntime(9715):致命异常:主要 05-21 19:45:47.639:E/AndroidRuntime(9715):java.lang.NoClassDefFoundError:com.schonherz.dbentities.DaoMaster 05 -21 19:45:47.639: E/AndroidRuntime(9715): 在 com.schonherz.dbentities.DaoMaster$OpenHelper.onCreate(DaoMaster.java:69) 05-21 19:45:47.639: E/AndroidRuntime(9715):在 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 com.schonherz.flottadroid.LoginActivity.onCreate(LoginActivity.java:95) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在android.app.Activity.performCreate(Activity.java:5104) 05-21 19:45:47.639:E/AndroidRuntime(9715): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2260) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2356) 05-21 19:45:47.639: E/AndroidRuntime(9715):在 android.app.ActivityThread.access$600(ActivityThread.java:150) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 05 -21 19:45:47.639: E/AndroidRuntime(9715): 在 android.os.Handler.dispatchMessage(Handler.java:99) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 android.os .Looper.loop(Looper.java:137) 05-21 19:45:47.639: E/AndroidRuntime(9715):在 android.app.ActivityThread.main(ActivityThread.java:5195) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 java.lang.reflect.Method.invokeNative(Native Method) 05-21 19: 45:47.639: E/AndroidRuntime(9715): 在 java.lang.reflect.Method.invoke(Method.java:511) 05-21 19:45:47.639: E/AndroidRuntime(9715): 在 com.android.internal .os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 05-21 19:45:47.639: E/AndroidRuntime(9715): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 05-21 19:45:47.639: E/AndroidRuntime(9715): at dalvik.system.NativeStart.main(Native Method)reflect.Method.invoke(Method.java:511) 05-21 19:45:47.639: E/AndroidRuntime(9715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 05 -21 19:45:47.639: E/AndroidRuntime(9715): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 05-21 19:45:47.639: E/AndroidRuntime(9715):在 dalvik.system.NativeStart.main(本机方法)reflect.Method.invoke(Method.java:511) 05-21 19:45:47.639: E/AndroidRuntime(9715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 05 -21 19:45:47.639: E/AndroidRuntime(9715): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 05-21 19:45:47.639: E/AndroidRuntime(9715):在 dalvik.system.NativeStart.main(本机方法)
这是我的活动:
提前致谢!
android - Android - SQLite - 没有这样的列错误(greenDAO)
我使用 greenDAO 创建了我的表结构,并且在更新下表时,我收到了以下错误:
- 我已经检查了所有列是否存在,它们确实存在!
- 我检查了列的名称,它们匹配
- 我检查了列名是否与一个关键字匹配,但我没有找到一个(http://www.sqlite.org/lang_keywords.html)
有人知道问题可能是什么吗?
以下是当前的创建表查询:
PS:我只能说,表前缀不应该是更新查询的一部分,因为没有它们,查询工作......但奇怪的是,我所有其他(> 20)表工作......只是这个没有
android - Gradle 与绿道
我生成的 dao 文件有问题。在 android studio 中一切正常,但编译后我有错误,我的类没有被找到。我发现我需要在 build.gradle 文件中手动添加源集。如果有人以前这样做过?
这是我的文件夹结构:
java 实际上是一个包含所有应用程序包的源文件夹。如何将 dao 添加为源文件夹,该 gradle 将尊重或如何禁用 gradle build 并以旧方式执行此操作?
android - 向 greenDAO 实体添加自定义代码
我想向我的 greenDAO 实体添加一些自定义代码。我看到有类似保护区的东西。但我不喜欢将生成的类签入我的 git 存储库的想法。我想为此使用继承。
即我有一个实体User
。所以我希望 greenDAO 生成一个名为UserBase
. 我想扩展User
并实现这样的方法:
Wherefirst
和last
是托管属性。
但我不知道如何告诉 greenDAO 使用类User
而不是生成的实体UserBase
。有没有办法做到这一点?
android - greenDAO:我可以在 android-project 中使用 gen 文件夹吗?
我想在我的项目中使用 greenDAO。如果我使用文件夹“gen”作为生成目标,会有什么问题吗?'gen' 是由 ADT 生成的,用于处理 R.java 文件?