ポーラー:
これは、新しく挿入された行のIDを取得する方法ですが、私は、それを得ることはありません。
DAO
@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
たクラスを、エラーは次のとおりです。
エラー:わからないinsertメソッドの戻り値の型を処理する方法。
私はそれについて逃したのですか?
黒帯 :
AlarmEntity...alarms
これは、複数の挿入に変換します。だから、戻り値の型は、あるべきList<Long>
かlong[]
、そしてそれが理にかなっています。あなたは二つのアイテムを渡すと次の2つのID、各新しく挿入された行のための1つを取得します。
あなたが一度に1つのアイテムを挿入したい場合は、削除varargs
(...
)を。例えば
@Insert
long insert(AlarmEntity alarms);