Я использую ormlite для Android, у меня есть следующая модель
@DatabaseTable(tableName = DatabaseConstants.TABLE_ARTICLE)
public class ArticleModel {
@DatabaseField(generatedId = true, columnName = DatabaseConstants.ARTICLE_ID)
public int id;
@DatabaseField(columnName = DatabaseConstants.ARTICLE_NAME)
public String name = "";
@DatabaseField(columnName = DatabaseConstants.ARTICLE_IMAGE_URL)
public String imageUrl = "";
@DatabaseField(columnName = DatabaseConstants.ARTICLE_IMAGE,dataType= DataType.BYTE_ARRAY)
public byte[] image;
Возможно обновить изображение следующим образом:
ContentValues cv = new ContentValues();
cv.put(DatabaseConstants.ARTICLE_IMAGE, UtilBitmap.bitmapToByteArray(bitmap));
SQLiteDatabase sqLiteDatabase = this.baseHelper.getWritableDatabase();
sqLiteDatabase.update(DatabaseConstants.TABLE_ARTICLE, cv,
DatabaseConstants.ARTICLE_MOBILE_IMAGE_URL + "= ?", new String[]{url});
Но есть ли метод ormlite для обновления в байтовый массив, отличный от следующего кода:
updateBuilder.updateColumnValue(DatabaseConstants.ARTICLE_IMAGE,imageBytes);
updateBuilder.where().eq(DatabaseConstants.ARTICLE_MOBILE_IMAGE_URL, url);
Проблема в том, что можно обновить изображение, используя первый способ, но не используя второй, т. Е. При использовании второго способа изображение неправильно сохраняется в базе данных. Я использовал sqliteviewer, чтобы проверить, хранится ли изображение, и это не помогает последним методом. Есть ли лучший подход для обновления байтового массива (изображения) с помощью "ormlite"?