Android Room Pojo对象不一致功能

时间:2018-03-25 17:05:40

标签: android sqlite android-room

在开发过程中,我遇到需要保存对象与字段和列表

的情况

正在寻找解决方案,我遇到了@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不支持这样的功能?

1 个答案:

答案 0 :(得分:0)

您不能使用theGitDescribeContent //a new line after the content above @Insert@Update的非实体。老实说,没有本地解决方案可以将非实体类与任何上述注释一起使用,但是几乎没有解决方法。

看看这个已经回答的问题,展示了各种解决方法: Android Room: Insert relation entities using Room