Булевый запрос в базе данных комнаты - PullRequest
1 голос
/ 18 марта 2020

Я получаю свои объекты из Интернета и напрямую вставляю их в КОМНАТУ БАЗЫ ДАННЫХ

@Entity(tableName = Constants.TABLE_OBJECT_ICONS)
public class ObjectClass {

    @PrimaryKey()
    @SerializedName("id")
    @ColumnInfo(name = Constants.KEY_OBJECT_ID)
    @Expose
    private Integer id;

    @SerializedName("controlUnit")
    @ColumnInfo(name = Constants.KEY_CONTROL_UNIT)
    @Expose
    private String controlUnit;

    @SerializedName("isStack")
    @ColumnInfo(name = Constants.IS_STACK)
    @Expose
    private Boolean isStack;

    public Boolean getStack() {
        return isStack;
    }

    public void setStack(Boolean stack) {
        isStack = stack;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getControlUnit() {
        return controlUnit;
    }

    public void setControlUnit(String controlUnit) {
        this.controlUnit = controlUnit;
    }

}

Теперь проблема в том, что я вставляю тип данных Boolen в БД и комната отображают его на 0 и 1, но когда я пытаюсь извлечь данные, мои методы getStack () возвращают ноль

ОБНОВЛЕНИЕ

Вот Дао

@Dao
public interface ObjectDao {

    @Insert
    void insertObject(ObjectClass objectClass);

    @Query("DELETE FROM object_icons")
    void deleteAllObjects();

    @Query("SELECT * FROM object_icons WHERE object_id=:id AND site_id=:siteId")
    Single<ObjectClass> getObjectById(String id, String siteId);

    @Query("SELECT object_name FROM object_icons WHERE object_id=:id AND site_id=:siteId")
    String getObjectNameById(String id, String siteId);

    @Query("SELECT * FROM object_icons WHERE object_keyword=:key AND site_id=:siteId")
    ObjectClass getObjectByKey(String key, String siteId);

    @Query("SELECT * FROM object_icons WHERE site_id=:siteId")
    Single<List<ObjectClass>> getObjectIconsList(String siteId);

}

, и после взятия базы данных я открыл ее в SQLite Online . Ниже приведена структура базы данных.

enter image description here

1 Ответ

0 голосов
/ 29 марта 2020

Ссылаясь на этот ответ Комната должна преобразовать 1 в true, когда вы читаете свой объект. Также кажется, что если вы переходите из Sqlite в Room, у вас могут возникнуть проблемы с типами Boolean и Integer, я не знаю, так ли это в вашей ситуации, но вот ссылка на случай: room миграция с использованием существующих типов логических столбцов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...