首页 > 解决方案 > 房间错误:不确定如何处理插入方法的返回类型

问题描述

我不明白,我虽然这是获取新插入行的 id 的方法。

@Dao
public interface AlarmDao {

    .....

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    long insertAll(AlarmEntity...alarms); //used long instead of void
}

实体

@Entity(tableName = "tb_alarm")
public class AlarmEntity {

    @PrimaryKey(autoGenerate = true)
    private long id;

    ...

    public long getId(){
        return this.id;
    }
}

但构建失败,我收到指向我的Dao班级的错误,错误是:

错误:不确定如何处理插入方法的返回类型。

我错过了什么?

标签: javaandroidandroid-room

解决方案


AlarmEntity...alarms

这翻译成多个插入。所以返回类型应该是 aList<Long>或 a long[],这是有道理的。如果您传递两个项目,您将获得两个 id,每个新插入的行一个。

如果您想一次只插入 1 个项目,请删除varargs( ...)。例如

@Insert
long insert(AlarmEntity alarms);

推荐阅读