Ormlite android не записывается значение

Рейтинг: 3Ответов: 1Опубликовано: 23.01.2015

Здравствуйте. У меня есть ормлайт база, в ней есть булеан поле, нужно в коде заменить его на противоположное. Изначально значение записывается, но после смены ориентации не сохраняется.

база:

@DatabaseField
@JsonProperty
private Boolean side;
 public boolean getSide() {
    return side;
}

public void setSide(boolean side) {
    this.side = side;
}
замена значения:

final boolean isFrontSide = app.getSide();
app.setSide(!isFrontSide);

Ответы

▲ 2

В данном случае вы путаете присваивание значения переменной объекта и изменение значения записи в БД.

Можно сделать по разному, например так:

Создаём метод в классе-таблице, который будет принимать в себя DAO таблицы, ID записи и значение типа boolean, находить по ID запись и менять значение нужной колонки:

public static void updateBoolean(YoursDaoObject dao, int id, boolean value)
{
    UpdateBuilder<YoursTableClass, Integer> updateBuilder;
    try
    {
        updateBuilder = dao.updateBuilder();
        updateBuilder.where().eq("nameOfYoursIDField", id);
        updateBuilder.updateColumnValue("nameOfYoursBooleanField", value);
        updateBuilder.update();
    } catch (SQLException e)
    {
        e.printStackTrace();
    }
}