Код: Выделить всё
try {
val request = okhttp3.Request.Builder()
.url(url)
.build()
val response = httpClient.newCall(request).execute()
fileDao.add(
FileDatabaseEntity(
domain = url,
value = responce.body?.bytes() ?: ByteArray(0),
)
)
} catch (e: Exception) {
AppLogger.tag(TAG).e("Processing $url| Error: $e")
}
Код: Выделить всё
@Entity(tableName = FILE)
class FileDatabaseEntity(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = ID)
val id: Long = 0,
@ColumnInfo(name = DOMAIN)
val domain: String,
@ColumnInfo(name = VALUE, typeAffinity = ColumnInfo.BLOB)
var value: ByteArray,
) {
companion object {
const val FILE = "file"
const val ID = "id"
const val DOMAIN = "domain"
const val VALUE = "value"
}
}
Код: Выделить всё
@Insert
fun add(file: FileDatabaseEntity)
При этом, если я специально укажу значение только как ByteArray(0) — сохраняется запись с пустым значением для этого поля. Также корректно работает, если в качестве типа поля указать строку со случайным значением (что говорит о том, что база данных в целом настроена правильно - я могу писать, читать, удалять записи таблицы).
В чем моя ошибка при сохранении ByteArray в таблице Room?
Подробнее здесь: https://stackoverflow.com/questions/787 ... m-database
Мобильная версия