【发布时间】:2011-08-01 09:14:41
【问题描述】:
我有一个需要使用 SQLite(Android 数据库)的应用程序。
我为我的模型和数据助手创建了一个类似 JPA 的结构。 问题是当我在 helper.search(int id) 上调用另一个 aHelper.search(int id) 时,Finalizing a Cursor 错误日志。
return Child(cursor.getInt(0), new ParentHelper.search(cursor.getInt(1)));
我的类似 JPA 的模型和数据助手的结构是这样的。
class Parent {
int id;
String name
// constructor with field-parameter
// getters and setters
}
class Child {
int id;
Parent parent;
// constructor with field-parameter
// getters and setters
}
class ParentHelper {
// necessary SQLiteImpelemntations
Parent search(int id) {
// new Cursor implementation
cursor.moveToFirst();
return new Parent(cursor.getInt(0), cursor.getString(1));
}
}
class ChildHelper {
ParentHelper parentHelper;
void close() {
parenHelper.close()
SQLiteDatabase.close();
SQLiteOpenHelper.close();
}
ArrayList searchAll() {
// new Cursor implementation
cursor.moveToFirst();
Child child = new Child(cursor.getInt(0), parentHelper.search(cursor.getInt(1)))
ArrayList.add(child)
cursor.close();
}
// necessary SQLiteImpelemntations
Child search(int id) {
// new Cursor implemenation
cursor.moveToFirst();
Child child = new Child(cursor.getInt(0), parentHelper.search(cursor.getInt(1)))
cursor.close();
return child;
}
}
【问题讨论】:
-
已更新为代码。以分层方式运行多个光标(如在 JPA 中)时卡住。 Child.search().Cursor 与 Parent.search().Cursor.