相关疑难解决方法(0)

如何使用Room中的嵌套关​​系

我有实体:

@Entity
public class A {
    @PrimaryKey(autoGenerate = true)
    public long id;
    public A() {}
}

@Entity()
public class B {
    @PrimaryKey @NonNull
    public String id;
    public String oneCId;
    public String anotherCId;
    public long aId;
    public B() {}
}

@Entity
public class C {
    @PrimaryKey @NonNull
    public String id;
    public String value;
    public C() {}
}
Run Code Online (Sandbox Code Playgroud)

和一些POJO:

public class AWithB {
    @Embedded
    public A a;

    @Relation(parentColumn = "id", entityColumn = "aId")
    public List<BWithC> bWithC;

    public AWithB() {}
}

public class …
Run Code Online (Sandbox Code Playgroud)

sqlite android database-relations android-room android-architecture-components

7
推荐指数
1
解决办法
3133
查看次数

尝试使用Room库时出错.[SQLITE_ERROR] SQL错误或缺少数据库

我正在尝试使用新的房间库,但我收到了这个错误

错误:查询有问题:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:Station)

错误:不确定如何将Cursor转换为此方法的返回类型

警告:未向注释处理器提供架构导出目录,因此我们无法导出架构.您可以提供 room.schemaLocation注释处理器参数或将exportSchema设置为false.

错误:org.gradle.api.internal.tasks.compile.CompilationFailedException:编译失败; 请参阅编译器错误输出以获取详细信

在此输入图像描述

RoomDatabase.kt

@Database(entities = TrolleyType::class), version = 2)
abstract class AppDatabase : RoomDatabase() {
    abstract fun stationDao(): StationDao
}
Run Code Online (Sandbox Code Playgroud)

MyDao.kt

@Dao
interface MyDao {
    @get:Query("SELECT * FROM Station")
    val stations: List<Station>


    @get:Query("SELECT * FROM TrolleyType")
    val trolleyTypes: List<TrolleyType>
}
Run Code Online (Sandbox Code Playgroud)

的entites

@Entity
data class Station(
        @PrimaryKey @ColumnInfo(name = "_id") var id: Int = 0,
        @ColumnInfo(name = "StationName") var stationName: String? = "",
        @ColumnInfo(name = "StationArabic") var stationArabic: String? = ""
)

@Entity
data …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-room

3
推荐指数
1
解决办法
3775
查看次数