Articles of greendao

仅使用Proguard:无法初始化DaoConfig => ArrayIndexOutOfBoundsException

我使用以下ProGuard规则: -keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {*; } -keep class ** $ Properties -keep class org.greenrobot.greendao。** -keepclassmembers class org.greenrobot.greendao。** {*; } #如果您不使用SQLCipher: -dontwarn org.greenrobot.greendao.database。** #如果你不使用RxJava: -dontwarn rx。** 启动应用程序时,我收到以下崩溃日志: java.lang.RuntimeException:无法创建应用程序my.app.package.MyApplication:org.greenrobot.greendao.DaoException:无法初始化DAOConfig 在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4569) 在android.app.ActivityThread.access $ 1500(ActivityThread.java:148) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5272) at java.lang.reflect.Method.invoke(Native Method) 在java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:909) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) 引起:org.greenrobot.greendao.DaoException:无法初始化DAOConfig 在org.greenrobot.greendao.internal.DaoConfig。(未知来源) 在org.greenrobot.greendao.AbstractDaoMaster.registerDaoClass(未知来源) 在my.app.package.database.model.DaoMaster。(未知来源) 在my.app.package.database.model.DaoMaster。(未知来源) at my.app.package.ZamgApplication.onCreate(Unknown Source) […]

连接池无法授予与线程的连接

我正在使用GreenDAO在Android中进行数据库处理。 当执行许多数据库更改(> 15.000)时,我收到此错误消息: 数据库’/ data / data / …’的连接池无法使用标志0x1授予与线程312(Thread-312)的连接30.000002秒。 一切都被困住了。 为什么会发生这种错误?

greenDao架构升级

我看过另一个关于使用green dao进行模式升级/迁移的问题( 这里 ) 在该答案中有许多链接可用于在进行模式升级时使用的良好模式 – 但是没有关于您实际对数据执行的操作的示例,以便正确地迁移它并且我无法find任何内容。 就我而言,我的迁移非常直接 – 我不希望转换任何现有数据,我只需要在我的模式中添加一些新表,我怀疑这是一种相当常见的情况。 在不删除用户已保存的数据的情况下,将新表添加到架构的最简单方法是什么? 非常感谢一个具体的例子。 如果greenDao提供了一个类似于DevOpenHelper的类,它将简单地添加先前不存在于模式中的新表/列而不首先丢弃现有的tabes / data,这将是非常棒的。

greendao从数据库和会话中删除

我正在使用greendao为一个android项目,并想知道如何正确删除和从数据库和会话caching对象。 目前我做了以下从数据库中删除: ChatDao chatDao = daoSession.getChatDao(); chatDao.queryBuilder().buildDelete().executeDeleteWithoutDetachingEntities(); 然而,作为方法名称和文档状态,这可能会在会话caching中留下陈旧的对象,我怎样才能从那里删除对象呢?

GreenDAO:将实体列表存储在其他实体中

我正在玩GreenDAO,我想我喜欢它的工作方式。 我不喜欢写SQL代码,所以这将帮助我避免它;) 但是,我认为这确实是非常“sql”的基础上思考如何设置它。 不知道这是不是一件坏事(知道事情是如何工作的),但我宁愿说:这是我的对象! 存储它! 但是我还没有find任何东西呢… 但是,好的,我正在做的是以下几点:我有一个对象,让我们说一个书架。 我在书架上放了些书。 这看起来像这样: class BookShelve { List<Book> books; void add(Book b) { books.add(b); } } BookShelve bs = new BookShelve(); Book b1 = new Book(); Book b2 = new Book(); Book b3 = new Book(); bs.add(b1); bs.add(b2); bs.add(b3); 好的,现在我想用GreenDAO来存储这个。 我需要使用“addToMany”吗? 所以: Property bookDataProperty = bookData.addLongProperty("bookShelve").getProperty(); ToMany books = BookShelve.addToMany(bookData, […]

GreenDAO如何获得最高logging?

我想从我的桌子上得到一些logging,但是GreenDAO不提供它。 喜欢这个: SELECT TOP 1 * FROM table_name 在LINQ中,您可以使用Take()获得最高logging,GreenDAO有没有解决scheme? 每个人都可以提供一个build议吗?

了解删除和删除greenDao中的关系

第一个问题是,greenDao什么时候为一个实体生成一个删除函数? 调用entity.delete()和session.getEntityDao.delete(entity)什么区别? 其次,如果我删除一个与父母有一个关系的孩子的父母实体,我必须自己去除孩子,不是吗? 其实没有自动依赖的“清理”完成,是吗?

在greenDao中添加索引列的正确方法?

我正在greenDAO中构build一个数据模型。 它是使用核心数据的iOS应用程序的端口。 在iOS中,我们使用索引(索引?)来提高20列(属性)表中的查询性能,其中经常查询5列。 我知道这会导致额外的存储空间,并提供较慢的表写入。 在文档挖掘中,我遇到了Entity中的addIndex(Index index)方法和Property.PropertyBuilder中的index()方法。 哪一个是正确的方式来添加一个实体的索引? Entity entity = schema.addEntity("entity"); entity.setSuperclass("SuperClass"); entity.addIdProperty(); entity.addIntProperty("property").index(); 要么 Entity entity = schema.addEntity("entity"); entity.setSuperclass("SuperClass"); entity.addIdProperty(); Property property = entity.addIntProperty("property").getProperty(); entity.setIndex(property); 还是他们都做同样的事情?

Android无法使用greendao使用sqlcipherencryption数据库

我正在使用greendao ORM。 我正在尝试使用SQLCipherencryption我的数据库。 Greendao自动支持sqlcipher。 所以我写了下面的代码进行encryption。 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "encrypted-db",null); Database db = helper.getEncryptedWritableDb("mySecretPassword"); DaoSession session = new DaoMaster(db).newSession(); return session; 但是每当我使用这个会话执行任何数据库操作时,它都会给出一个错误 Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/greenrobot/greendao/database/DatabaseOpenHelper$EncryptedHelper; at org.greenrobot.greendao.database.DatabaseOpenHelper.checkEncryptedHelper(DatabaseOpenHelper.java:121) at org.greenrobot.greendao.database.DatabaseOpenHelper.getEncryptedWritableDb(DatabaseOpenHelper.java:133) 我的gradle依赖是 – > compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.2.0' compile 'org.greenrobot:greendao:3.2.0' compile 'com.google.code.gson:gson:2.8.0' 我的proguard规则是 -keepclassmembers class * extends […]

GreenDAO与Sqlcipher集成示例

我已经使用GreenDAO设置了一个新项目,能够使用DaoGenerator生成ExampleDAO。 一切工作正常。 我也有一个预先填充的Android资产文件夹的数据库,在应用程序运行,它被复制到Android数据库系统path。 现在我想与SqlCipher集成,我的数据库encryption…如果有人可以帮助或给示例应用程序,这将是一个很大的帮助。