如何解决使用Room
我正在按照一对一关系使用Room(版本:2.2.5)执行数据库插入操作。这是实体。
帐户实体
@Entity(
tableName = "tbl_account_info"
)
data class Account (
@PrimaryKey
val id: Int,val firstName: String,val lastName: String
)
每个帐户都有一个偏好实体
@Entity(
tableName = "tbl_account_prefs",foreignKeys = [
ForeignKey(
entity = Account::class,parentColumns = ["id"],childColumns = ["fk_account_id"],onDelete = CASCADE
)
]
)
data class AccountPrefs(
@PrimaryKey(autoGenerate = true)
val uniqueId: Int,@ColumnInfo(name = "fk_account_id")
val userAccountId: Int,val flagA: Boolean,val flagB: Boolean
)
和映射实体
data class AccountWithPrefs(
@Embedded val account: Account,@Relation(
parentColumn = "id",entityColumn = "fk_account_id"
)
val prefs: AccountPrefs
)
还有DAO
@Transaction
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun saveAccount(account: Account,accountPrefs: AccountPrefs)
@Transaction
@Query("SELECT * FROM tbl_account_info where id = :accountId")
suspend fun fetchAccount(accountId: Int): AccountWithPrefs
但这不会插入任何值。已检查的数据库文件,没有表条目。我有什么想念的吗?我发现了很多与Room和CRUD操作相关的在线教程,但与此无关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。