Это может быть повторяющийся вопрос, но ни один из предыдущих ответов мне не подошел. Я пытаюсь сохранить byte [] в ormlite, но получаю следующую ошибку.
java.sql.SQLException: ORMLite does not know how to store class [B for field 'imageBytes'. byte[] fields must specify dataType=DataType.BYTE_ARRAY or SERIALIZABLE
Я уже добавил тип поля как dataType = DataType.BYTE_ARRAY в класс java, а также в файл конфигурации . Вот мой класс Java.
public class ImageData {
@DatabaseField
private long id;
@DatabaseField(dataType = DataType.BYTE_ARRAY)
byte[] imageBytes;
public ImageData() {
}
public ImageData(long id, byte[] imageBytes) {
this.id = id;
this.imageBytes = imageBytes;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public byte[] getImageBytes() {
return imageBytes;
}
public void setImageBytes(byte[] imageBytes) {
this.imageBytes = imageBytes;
}
public void saveImage(DatabaseHelper dbHelper) throws java.sql.SQLException{
Dao<ImageData,Long> dao = dbHelper.getImageDataDao();
dao.createOrUpdate(this);
}
public static ImageData getImage(DatabaseHelper dbHelper,long id)throws java.sql.SQLException{
Dao<ImageData,Long> dao = dbHelper.getImageDataDao();
ImageData obj = dao.queryForId(id);
return obj;
}
}
А вот содержимое моего файла ormlite_config.txt.
# --table-start--
dataClass=com.sample.model.ImageData
tableName=imageData
# --table-fields-start--
# --field-start--
fieldName=id
generatedId=true
allowGeneratedIdInsert=true
# --field-end--
# --field-start--
fieldName=imageBytes
dataPersister = DataType.BYTE_ARRAY
# --field-end--
# --table-fields-end--
# --table-end--
Я использовал dataPersister
, как предложено в этом ответе . Вместо dataPersister я попробовал dataType также в моем файле конфигурации. Я не могу найти решение. В чем проблема с моим кодом?