草庐IT

greendao3

全部标签

android - GreenDao 多对多关系

我在Android中使用Greendao进行数据库映射。到目前为止一切正常。但是现在我遇到了以下问题:我有一个集群和叶对象。一个簇包含许多叶对象。如果一个集群被放大,它可以split成更多的集群和更多的叶子。这不是严格的树关系,更像是一个大集群有很多叶子,而一个小集群可以有这些叶子的一个子集。基本上,一个簇有很多叶子,但叶子也存在于多个簇中,因为叶子的ID是唯一的,并且与簇的关系保存在叶子中,叶子只能在一个簇中,对吗?greendao主页指出,多对多关系是可能的,但我无法理解如何为这种关系建模。是否可以对这种关系进行建模,或者数据结构对GreenDao来说是个问题吗?

android - 将 Retrofit 和 GreenDao 与嵌套的 json 对象一起使用

我想结合使用Retrofit和GreenDao,但嵌套的Json对象有问题。我的嵌套字段仍然是空的。这是Json数据结构[{"id":1,"street":"Streetname","zipcode":12345,"city":"MyCity","phone_number":"+123456789","position":"12.0000,9.0000","company":{"title":"CompanyName","group":{"title":"GroupName"}}}]我的DaoGenerator是这样的EntitycustomItem=schema.addEntity(

android - 有没有办法从 GreenDao 查询对象中获取游标?

我正在尝试实现一个AlphabtIndexer并且构造函数需要一个Cursor到数据库中的表。有没有办法从GreenDao中的Query对象取回Cursor? 最佳答案 假设你有查询对象query和daosessiondaoSession你可以运行:Cursorcursor=daoSession.getDatabase().rawQuery(query.getSql(),query.getParameters()); 关于android-有没有办法从GreenDao查询对象中获取游标?,

android - greenDAO:比较两个属性

我相信这应该很简单,但我似乎找不到解决方案。假设我有一个包含5个字段(id、颜色、大小、已扫描、预期)的表如何获取预期值大于扫描值的所有行?我试过了mydao.Property.Expected.gt(mydao.Property.Scanned).list()但这会返回0行。使用LOG_SQLbool值我可以看到它正在寻找一个属性字段,而不是该字段的值。D/greenDAO:Valuesforquery:[0,de.greenrobot.dao.Property@33ecce97] 最佳答案 greenDAO的QueryBuild

android - 将正确的上下文传递给 greendao 的 OpenHelper 构造函数

如果我理解正确的话,在使用DB时,我必须做如下DaoMaster.OpenHelperhelper=newDaoMaster.OpenHelper(this,"test-db",null){@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){}};SQLiteDatabasedb=helper.getWritableDatabase();DaoMasterdaoMaster=newDaoMaster(db);daoSession=daoMaster.newSession();但如果我尝试在

android - GreenDAO:实体与 DAO 上下文分离

我使用GreenDAO。但是,抛出这个异常:"de.greenrobot.dao.DaoException:EntityisdetachedfromDAOcontext".在生成的代码中,我找到了这段代码。/**calledbyinternalmechanisms,donotcallyourself.*/publicvoid__setDaoSession(DaoSessiondaoSession){this.daoSession=daoSession;myDao=daoSession!=null?daoSession.getPeerGroupDao():null;}有人知道GreenD

android - 为单次运行的应用程序仅创建一次 greenDAO 数据库连接的最佳方法是什么?

目前我正在一个类中创建greenDAO数据库连接(它在每个静态方法中打开连接)并在我需要的任何地方使用它。但我不确定这是否是最好的方法。任何人都可以建议更好的方法吗?我的代码:importcom.knowlarity.sr.db.dao.DaoMaster;importcom.knowlarity.sr.db.dao.DaoMaster.DevOpenHelper;importcom.knowlarity.sr.db.dao.DaoSession;importcom.knowlarity.sr.db.dao.IEntity;publicclassDbUtils{privatestati

android - GreenDao 中的交易

我正在使用GreenDao存储大量数据,这些数据来自REST服务。我的很多实体都与关系有关。一切都很好,但明天我必须实现一个坚如磐石的工作流程。当我加载数据时,我必须检查是否发生错误。如果是这样,我必须确保没有存储任何内容在SQLite数据库中。通常我会使用transactions和rollback以防异常,否则提交给数据库。现在我每次创建对象时都使用insertordelete来保存实体。实现的方法是什么? 最佳答案 在插入和更新时,Greendao检查是否有正在进行的事务。如果是这种情况,greendao将不会启动新事务。所以唯

Android - 观察者数据库随 GreenDao ORM 发生变化

我正在使用GreenDao在我的一个安卓项目中。我正在尝试为完成更改时实现观察者/监听器。到目前为止,我创建了一个仅发布事件(通过EventBus)的静态函数基本函数(保存、替换和删除),但这种方法让我很头疼。目前,我正在尝试使用ContentObserver,但由于某种原因无法正常工作(请参阅附加代码),但我希望您能听到有关其他通用解决方案的建议。观察者:publicclassDBObserverextendsContentObserver{publicDBObserver(){super(null);Logger.e("DBObserverwasinitialized!");}@O

android - SQLiteFullException : database or disk is full (code 13) GreenDao

从表中删除记录时如何解决greenDao中的SQLiteFulException?这是我的堆栈跟踪:android.database.sqlite.SQLiteFullException:databaseordiskisfull(code13)atandroid.database.sqlite.SQLiteConnection.nativeExecute(NativeMethod)atandroid.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:555)atandroid.database.sqlite.S