【发布时间】:2018-01-18 10:28:48
【问题描述】:
我在我的 android 应用程序中使用 google ROOM lib 来 sqlite 数据库。
我在我的单个应用程序中使用不同的控制器(用户定义)创建了两个数据库。
这是我已经实现的代码
数据库 1:
@Database(entities = {JobTable.class}, version = 1)
public abstract class JobRoomController extends RoomDatabase
{
public static JobRoomController controller;
public abstract JobTable jobTable();
public static JobRoomController database(Context context)
{
if(controller == null)
{
controller = Room.databaseBuilder(context.getApplicationContext(),
JobRoomController.class, "Job")
.allowMainThreadQueries()
.build();
}
return controller;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
数据库 2:
@Database(entities = {DbTrackServer.class,DbGpsStatus.class}, version = 1)
public abstract class RoomControl extends RoomDatabase {
public abstract IGpsStatus gpsStatus();
public abstract ITrack track();
private static RoomControl roomControl;
public static RoomControl database(Context context)
{
if(roomControl == null)
{
roomControl = Room.databaseBuilder(context.getApplicationContext(),
RoomControl.class, "mobileTracker")
.allowMainThreadQueries()
.build();
}
return roomControl;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
但是当我构建我的项目时,它显示 gradle 错误。
**错误:任务':app:compileDebugJavaWithJavac'执行失败。
java.lang.IllegalArgumentException:@android.arch.persistence.room.ColumnInfo 没有定义元素 collate()**
【问题讨论】:
标签: android sqlite android-room android-database