这是我的第一个问题。
我正在使用Room数据库构建一个应用程序,我试图遵循本教程,因为我需要实现多对多的关系。
但是,我一直得到以下错误,只要我尝试构建的应用程序:
错误:查询有问题:[SQLITE_ERROR]SQL错误或丢失数据库(没有这样的表: OwnerDogCrossRef)私有最终java.util.List dog=null;
我的实体,具有交叉引用数据类:
@Entity(tableName = "owner_table")
data class Owner(
@ColumnInfo(name = "owner_id")
val id: String,
@PrimaryKey
@ColumnInfo(name = "owner_name", index = true)
val name: String,
// some other columns
@Entity(tableName = "dog_table")
data class Dog(
@PrimaryKey
@ColumnInfo(name = "dog_name")
val name: String
// some other columns
@Entity(primaryKeys = ["owner_name", "dog_name"])//, "move_learned_by"])
data class OwnerDogCrossRef(
val owner_name: String,
@ColumnInfo(index = true)
val dog_name: String
// some other columns
我的连接数据类:
data class OwnerWithDogs(
@Embedded val owner: Owner,
@Relation(
parentColumn = "owner_name",
entityColumn = "dog_name",
associateBy = Junction(OwnerDogCrossRef::class)
)
val dogs: List<Dog>
)
我的刀:
@Dao
inteface OwnerDao {
@Transaction
@Query("SELECT * FROM owner_table WHERE owner_name = :name")
fun getOwnerWithDogs(name: String): LiveData<List<OwnerWithDogs>>
}
我还添加了OwnerDogCrossRef到我的数据库如下:
@Database(
entities = [Owner::class, Dog::class, OwnerDogCrossRef::class],
version = 2,
exportSchema = false
)
@TypeConverters(Converters::class)
abstract class MainDatabase : RoomDatabase() {
//some logic
}
谢谢你的帮助
data class OwnerWithDogs(
@Embedded val owner: Owner,
@Relation(
parentColumn = "owner_name",
entity = Dog.class,
entityColumn = "dog_name",
associateBy = @Junction(
value=OwnerDogCrossRef.class,
parentColumn = "owner_name",//variable name in your OwnerDogCrossRef
entityColumn = "dog_name")
)
val dogs: List<Dog>
)
试试这个代码。如需进一步了解,请尝试此链接
https://developer.android.com/reference/androidx/room/Junction
转到您的Database.kt文件,并确保交叉引用表已包含在那里的实体列表中。你的可能与下面的例子不同,但我希望你能看到你可能错过了什么。
@Database(entities = [Owner::class, Dog::class, OwnerDogCrossRef::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
...
}
这是因为Owner、Dog和OwnerDogCrossRef都是数据库需要了解的表,而OwnerWithDogs只是将相关表加入到事务中,因为根据文档,将运行多个查询。有关显示如何包含特定数据库的实体的数据库文档,请参见此处。
我想使用同一种对象来查询多个表。我定义了一个基类,如下所示: 然后,我对基类进行了子类化,并为每个基类定义了DAO。 但是我一直得到一个编译错误,没有这样的表: abc,也没有这样的表: xyz。任何想法?
我正在尝试使用新房间的图书馆,但我遇到了这个错误 错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:Station) 错误:不确定如何将游标转换为此方法的返回类型 MyDao.kt 实体
我的Android应用程序中没有内置以下Dao: 当我在Android Studio3中构建项目时,我在gradle构建步骤中得到以下错误: 如果我删除loadAll函数,一切都像魅力一样工作...这个函数有什么问题?
以上是我正在开发的Spark应用程序的主要方法。它涉及两个模板:loginform.ftl和result.ftl。ftl是一个简单的html表单,它向服务器发送post请求,由上面代码中的post处理程序处理。当我填写表单并发送请求时,我得到一个500内部服务器错误。这个错误与result.ftl有关,我现在用它来测试模板的制作。我将一个HashMap传递给result.ftl模板。我得到的错误是
我有以下问题,当我运行testng套件时,我得到以下错误: “参数'paramName'是@test on method testMethod所必需的,但尚未标记为@OPtional o或已定义”。这里的所有问题都是正确的,这是我试图执行的代码的一部分: 如果此测试是,则扩展自基本测试,该测试在测试之前调用了以下方法 我不包括驱动程序被实例化的情况。如果有人知道会发生什么的话。
我正在使用java,从服务器收到了一些json字符串。我收到了带有readUTF的json字符串,但是有一些数据丢失了。我没有收到每个json包的前两个字符。另一个问题是收到json字符串有延迟。例如,服务器发送了一个json字符串,客户端无法收到它,直到服务器和客户端发送的大约50个json字符串突然显示所有的json字符串。主要问题是什么? 因为服务器用UTF格式发送数据,所以我不能用Buff