在开发过程中,我遇到需要保存对象与字段和列表
的情况正在寻找解决方案,我遇到了@Relation
我已经UserAndPets示例
了class ShoppingListAndItems(
@Embedded
var shoppingList: ShoppingListCache = ShoppingListCache.emptyInstance(),
@Relation(
parentColumn = ShoppingListCache.COLUMN_PARENT_ID,
entityColumn = ShoppingItemCache.ENTITY_COLUMN)
var shoppingItems: List<ShoppingItemCache> = emptyList()
)
使用以下DAO列表的那种解决方案的问题没有得到更新:
@Query("""SELECT * FROM ${ShoppingListCache.TABLE_NAME}
WHERE ${ShoppingListCache.COLUMN_IS_ARCHIVED} = :isArchived""")
fun getListOfShoppingList(isArchived: Boolean): List<ShoppingListAndItems>
此外,POJO不能再使用返回类型 - 令人失望的是什么
@Insert
fun insertShoppingListAndItems(newShoppingListAndItems: ShoppingListAndItems) // Error
@Delete
fun insertShoppingListAndItems(newShoppingListAndItems: ShoppingListAndItems) // Error
我做错了什么或者Room不支持这样的功能?
答案 0 :(得分:0)
您不能使用theGitDescribeContent
//a new line after the content above
,@Insert
,@Update
的非实体。老实说,没有本地解决方案可以将非实体类与任何上述注释一起使用,但是几乎没有解决方法。
看看这个已经回答的问题,展示了各种解决方法: Android Room: Insert relation entities using Room