Android Room批量0
可以返回@Insert
个插入数据中的List<Long>
。
使用“冲突策略” IGNORE时,如果我的@Entity具有一个RowId
主键来使大容量插入语句返回包含插入的String值的String
的话,可能吗?
当我尝试此代码时
List<String>
我收到此构建错误消息:-
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun insertIgnore(data: ArrayList<MyDO>): List<String>
答案 0 :(得分:1)
否,它期望返回的不是一个插入对象的long数组(插入行的rowid)。
如果插入成功,则该值为1或更大。
您可以通过索引将它们与传递的数组相关联,从而确定相应对象的已插入或未插入的值。
例如(java而不是Kotlin):-
使用
@Insert(onConflict = OnConflictStrategy.IGNORE)
long[] addDrinks(DrinkList... drinkLists);
您可以使用:-
long[] result = mDrinkListDao.addDrinks(drinksToAdd);
for (int i=0; i < result.length; i++) {
if (result[i] > 0) {
Log.d("INSERTRESULT",drinksToAdd[i].getList() + "was inserted.");
} else {
Log.d("INSERTRESULT", drinksToAdd[i].getList() + "was not inserted");
}
}