我有ID列表,Long类型也是primaryKey,我想存储在DB中,如果我这样存储
@Dao
public interface UserId {
@Query("SELECT * FROM ids")
Flowable<List<Long>> allIds();
@Insert(onConflict = OnConflictStrategy.REPLACE)
List<Long> insert(List<Long> Ids);}
错误:参数的类型必须是使用@Entity或其集合/数组注释的类。 这意味着我需要一个只有一个字段类型为Long的类?我应该用@Entity
注释答案 0 :(得分:1)
@Insert(onConflict = OnConflictStrategy.REPLACE)
List<Long> insert(List<Long> Ids);
Long
不是实体。您无法使用@Insert
插入Long
个对象,部分原因是没有Long
值的表格。
您需要:
@Insert
个实体,或
创建一个@Query
方法,使用SQL解释您计划对这些Long
值进行的操作
此外,我怀疑您现有的@Query
现在或将来都无法使用,因为Room不会知道您期望的Long
。如果碰巧在任何实体定义userfavoritestore
表中只有一个合适的字段,可能可以工作。但是一旦你有2个以上的整数字段,Room就不知道你想要哪一个。将*
中的@Query
替换为您要返回的实际列名。