我是greenDAO的新手,我正在编写DaoGenerator.我遇到的一个问题是我有一个用户表和一个wallpost表.我希望能够在wallpost表中有两列与用户表(墙所有者和发布用户)的很多关系,他们可能是也可能不是同一个用户,但到目前为止它看起来不像可以有两个toMany关系,指向同一个表中的单个表.
有没有更好的方法来做到这一点/一种方法来实现这一目标?我希望能够通过调用.getOwner()和.getPoster()来加载墙贴并获取墙所有者并发布用户.
谢谢
我需要验证一些条件来创建一个完整的查询:
QueryBuilder<MyObj> qb = getMyObjDao().queryBuilder();
if ( someCondition )
qb.where(MyObjDao.Properties.Prop1.eq(someValue));
else
qb.whereOr(MyObjDao.Properties.Prop2.eq(someValue),MyObjDao.Properties.Prop2.eq(someValue));
if ( someOtherCondition )
qb.where(MyObjDao.Properties.Prop3.eq(someValue));
else
qb.whereOr(MyObjDao.Properties.Prop4.eq(someValue));
Run Code Online (Sandbox Code Playgroud)
那么是否可以连接查询构建器条件并动态创建查询构建器?
有没有最好的方法将JSON Jackson与greenDAO整合在一起.此外,如何使用greenDAO处理多对多关系映射.我发现,我们需要创建一个具有多对多映射的连接表.有没有任何例子将所有这些功能结合在一起.
我只需要使用 GreenDao 返回一列。这是 SQL 查询:
SELECT NAME FROM PERSON
Run Code Online (Sandbox Code Playgroud)
我该如何使用 GreenDao 来做到这一点?
我使用 GreenDao 作为我的 ORM。我想将架构从旧版本迁移到新版本。我使用此链接来实现我的 mygration。所以我编写了自己的 OpenHelper 类并将其放入另一个包中。我像这样实现 onUpgrade 方法:
public class UpgradeHelper extends OpenHelper {
public UpgradeHelper(Context context, String name, CursorFactory factory) {
super(context, name, factory);
}
/**
* Apply the appropriate migrations to update the database.
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("greenDAO", "My Upgrade Helper -------- Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
switch (newVersion) {
case 2:
new …Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题.我有我的应用程序的双向同步代码在一个内部运行ScheduledThreadPoolExecutor.代码从服务器的响应中迭代大量对象,并将它们保存到本地数据库(带有GreenDAO的SQLite).
问题是,当这个线程正在处理对象列表时,UI会锁定几秒钟,并且我在logcat中得到多个跳过帧的警告.
02-16 02:34:34.539 5730-5730/com.myapp.android D/SyncService? Sync done.
02-16 02:34:34.552 5730-5730/com.myapp.android I/Choreographer? Skipped 123 frames! The application may be doing too much work on its main thread.
02-16 02:34:41.060 5730-5748/com.myapp.android I/art? Background sticky concurrent mark sweep GC freed 168341(7MB) AllocSpace objects, 1(81KB) LOS objects, 15% free, 39MB/46MB, paused 1.774ms total 108.998ms
02-16 02:34:42.515 5730-5748/com.myapp.android I/art? Background partial concurrent mark sweep GC freed 249676(9MB) AllocSpace objects, 34(3MB) LOS objects, 32% free, 33MB/49MB, paused 10.125ms total 118.693ms
02-16 02:34:45.361 5730-5748/com.myapp.android …Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,其数据库版本为1.
我在一个表中添加了一个数据列,并且可以迁移到新版本中.
我遇到的问题是如何为此进行单元测试.我需要检查旧数据是否正确插入新结构中,并以正确的方式添加和填充新列.
我最好怎么做?提前致谢.
Crashlytics报道了greendao的大量崩溃事件:
> Caused by de.greenrobot.dao.DaoException: Could not init DAOConfig
> at de.greenrobot.dao.internal.DaoConfig.<init>(DaoConfig.java:94)
> at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:44)
> ... Caused by java.lang.NoSuchFieldException: TABLENAME
> at java.lang.Class.getField(Class.java:1104)
> at de.greenrobot.dao.internal.DaoConfig.<init>(DaoConfig.java:56)
> at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:44)
Run Code Online (Sandbox Code Playgroud)
似乎只有三星设备(SM-G900V,SM-900A,SM-900P,SM-870A,SCH-545等)全部运行Android 5.0 Lollipop.
根据我的研究,他们的设备上似乎有一个三星类加载器实现问题导致了这个问题.人们在此问题中提到可能的加载程序是一个问题:https: //code.google.com/p/gmaps-api-issues/issues/detail?id = 8314
人们建议在Proguard中添加keep规则,但我们在应用程序中根本没有使用Proguard.我们确实启用了多索引.
有人有修复或解决方法的建议吗?
android samsung-mobile greendao nosuchfieldexception android-5.0-lollipop
我有以下JSON响应,我希望映射到我的实体:
{
"name": "Andrew",
"stop_ids": [
"956",
"957",
"958"
]
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我用my创建另一个实体,我可以创建一对多的关系stop_ids,但是有没有办法直接映射这个?
这是我下面的代码,我不知道如何直接映射下面的数组作为我的属性.
Entity person = schema.addEntity("person");
person.addStringProperty("name");
person.addArrayProperty("stop_ids"); //what is the correct way to do this?
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,并希望使用数据库进行本地存储.我已经在互联网上搜索并找到了本地存储数据库之间的一些比较.但我必须在Realm和GreenDAO之间进行选择.所以请建议我使用哪一个.