标签: greendao

如何从 android 中的 BoxStore Objectbox 数据库获取不同的值

我无法编写查询来获取 android 中 green dao 的 Objectbox 数据库中的不同值

android greendao objectbox

5
推荐指数
1
解决办法
976
查看次数

使用greenDao时的NoClassDefFoundError

我正在使用greenDao访问我的Android手机中的数据库.一切似乎都很好,并且遵守.但是当我运行该程序时,它在DaoMaster.java - > OpenHelper类,createAllTables上的onCreate方法(db,false)崩溃;

以下是异常消息:

>05-03 15:40:34.109: E/AndroidRuntime(28587): FATAL EXCEPTION: main
05-03 15:40:34.109: E/AndroidRuntime(28587): java.lang.NoClassDefFoundError: com.hook38.sporttimer.model.sql.DaoMaster
05-03 15:40:34.109: E/AndroidRuntime(28587):    at com.hook38.sporttimer.model.sql.DaoMaster$OpenHelper.onCreate(DaoMaster.java:42)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:165)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at com.hook38.sporttimer.controller.CountdownTimerStoreController.<init>(CountdownTimerStoreController.java:32)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at com.hook38.sporttimer.controller.CountdownTimerController.<init>(CountdownTimerController.java:57)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at com.hook38.sporttimer.CountDownTimerActivity.onCreate(CountDownTimerActivity.java:49)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.Activity.performCreate(Activity.java:4465)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 15:40:34.109: E/AndroidRuntime(28587):    at …
Run Code Online (Sandbox Code Playgroud)

sqlite android dao noclassdeffounderror greendao

4
推荐指数
1
解决办法
2477
查看次数

如何通过GreenDAO实现双向一对一的关系?

我将ORM GreenDAO用于我的Android应用程序的DAL层.我在两个表之间的一对一关系中遇到了问题.例如:

Entity page = schema.addEntity("Page");
Entity bookmark = schema.addEntity("Bookmark");

Property pageIdProperty = bookmark.addLongProperty("pageId").getProperty();

bookmark.addToOne(page, pageIdProperty); // any bookmark related to a page
page.addToOne(bookmark, pageIdProperty); // any page can has a bookmark
Run Code Online (Sandbox Code Playgroud)

这种关系错了吗?

当我定义它,我不能把page.getBookmark()页面类

如果这是真的,我是否能以一对一的关系使其双向化?

java orm android greendao

4
推荐指数
1
解决办法
3081
查看次数

注释greenDao生成的对象

我看到,由于性能问题,greenDao不希望使用注释来生成DAO和TO.但是,如果我仍然需要为解析器目的注释例如TO?有没有办法实现这一目标?

例:

如果我们使用GreenDAO代码生成创建Customer实体,它将创建CustomerDAO和Customer类,对吧?

那么,如果我正在使用返回Customer对象的SOAP webservices,并且为了便于解析这个Customer对象,我会使用一个带注释的框架,比如simpleXML.在使用GreenDAO重新生成代码时,有没有办法更改Customer类而不会松散每个注释?

谢谢!

orm android greendao

4
推荐指数
2
解决办法
2906
查看次数

使用greenDao动态查询

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

QueryBuilder qb = getMyObjDao().queryBuilder();

if(someCondition)

 qb.where(MyObjDao.Properties.Prop1.eq(someValue)); 
Run Code Online (Sandbox Code Playgroud)

else
qb.whereOr(MyObjDao.Properties.Prop2.eq(someValue),MyObjDao.Properties.Prop2.eq(someValue));

if(someOtherCondition)

 qb.where(MyObjDao.Properties.Prop3.eq(someValue)); 
Run Code Online (Sandbox Code Playgroud)

其他

 qb.whereOr(MyObjDao.Properties.Prop4.eq(someValue));
Run Code Online (Sandbox Code Playgroud)

那么是否可以连接查询构建器条件并动态创建查询构建器?或其他任何事情:

(a ='%'+ condition1或a ='%'+ condition1 +'%'或a = condition1 +'%')和
|(b ='%'+ condition2或b ='%'+ condition2 +'%'或b = condition2 +'%')和....

如何在绿道?

sqlite android greendao

4
推荐指数
1
解决办法
6038
查看次数

如何使用Greendao执行以下查询?

我有2张桌子A和B.

表A包含名称,表B包含选定的名称.

现在我想使用greendao对这些表执行以下查询,如果有可能请告诉我,如果不存在任何替代方法(可能是原始查询).

select * 
from A inner join B
on A.nameid = B.nameid
Run Code Online (Sandbox Code Playgroud)

另外,表A列:id, nameid, name
和表B列:id, nameid, name, rating

sql android greendao

4
推荐指数
1
解决办法
7453
查看次数

具有相对输出路径的greenDAO模式生成; 未找到i/o失败

本教程之后,我已经能够创建一个可编译和运行的工作应用程序模块,但如果我将相对路径传递给generateAll方法则会失败.如果我指定一个绝对路径,它工作正常.我的android studio项目由几个模块组成,结构如下

project_root,包含每个模块的子目录

/ daogenerator

/应用

每个都有自己的src目录,我正在调用generateAll:

new DaoGenerator().generateAll(schema,
                "../app/src");
Run Code Online (Sandbox Code Playgroud)

这会导致io错误,表明该目录不存在.我已经修改了许多合理替代方案的路径,并确认路径存在于磁盘上,但仍然出现错误.绝对路径工作正常,所以我试图理解我错过了什么让它使用相对路径.谢谢.

android greendao

4
推荐指数
1
解决办法
1455
查看次数

GreenDAO:从数据库中检索新实体以与更改后的实体进行比较

我在我的 Android 项目中使用 GreenDAO。

我已经实现了一个增量更改表,因此我可以跟踪对实体的各个更新。我想在一个“updateTask”方法中跟踪这些更改,因此无论从何处调用它,都可以更新增量表。

目前,我有一种方法可以更改 Task 实体的状态。

public void updateTaskStatus (Long taskId, String status) {
    Task task = taskDao.load(taskId);
    task.setStatus("Pending");
    updateTask(task);
}
Run Code Online (Sandbox Code Playgroud)

然后我有我的任务更新方法。

public void updateTask (Task task) {
    //Check for any changes to the Task entity in this method and update the delta table.
    Task existingTask = taskDao.load(task.getId());  //  <---this call returns the same reference to the task object that was passed into this method.
    if (!existingTask.getStatus().equals(task.getStatus())) { //<--this is always returning false as both existingTask and task …
Run Code Online (Sandbox Code Playgroud)

greendao

4
推荐指数
1
解决办法
785
查看次数

当majorkey在greendao中很短时ClassCastException

我创建了一个Short只需要识别的实体.

这是我生成的代码:

public Source(Short id, String name) {
    this.id = id;
    this.name = name;
}
Run Code Online (Sandbox Code Playgroud)

TestCode DatabaseHelperTest.java:

public void testInsertAndLoad(){
    Source source = new Source((short) 0, "TestSource");
    SourceDao sourceDao = daoSession.getSourceDao(); //#line 26
    sourceDao.insert(source);
    Short id = source.getId();
    assertNotNull(id);
}
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到了ClassCastException:

Running tests
Test running started
java.lang.ClassCastException: java.lang.Short cannot be cast to java.lang.Long
at de.greenrobot.dao.identityscope.IdentityScopeLong.put(IdentityScopeLong.java:31)
at de.greenrobot.dao.AbstractDao.attachEntity(AbstractDao.java:695)
at de.greenrobot.dao.AbstractDao.updateKeyAfterInsertAndAttach(AbstractDao.java:362)
at de.greenrobot.dao.AbstractDao.executeInsert(AbstractDao.java:355)
at de.greenrobot.dao.AbstractDao.insert(AbstractDao.java:293)
at com.tuanchau.DatabaseHelperTest.testInsertAndLoad(DatabaseHelperTest.java:26)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Run Code Online (Sandbox Code Playgroud)

那么,GreenDAO是否允许 …

orm android primary-key classcastexception greendao

4
推荐指数
1
解决办法
1035
查看次数

未解决的参考:使用greendao和kotlin的DaoSession

我试图将用java编写的android项目转换为kotlin.我的greendao课程已经随时生成,我会收到一条Unresolved reference: DaoSession错误消息.我有
kapt { generateStubs = true }我的构建gradle代码.

android kotlin greendao

4
推荐指数
2
解决办法
2424
查看次数