【发布时间】:2020-03-18 07:08:41
【问题描述】:
我从网上获取我的对象并将它们直接插入到 ROOM DATABASE
@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 数据类型插入 DB,并且房间将其映射到 0 和 1,但是当我尝试获取数据时,我的 getStack() 方法返回 null
更新
这里是道
@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下面是数据库的结构。
【问题讨论】:
-
如果无法回答请点赞!
-
您需要为这个问题提供更多背景信息。 1. 发布你 Dao 的 fetch 查询,2. 它实际上是否插入了布尔值,如果是,你是如何验证的?
-
@BadhrinathCanessane 问题已更新。
-
谢谢,您能否也发布 Constants.IS_STACK 的值。确保实体中的列名称正确。
标签: android android-studio android-sqlite android-room android-jetpack