小编Osa*_*rez的帖子

android room中的实体继承

我有一个父类Queue,它具有以下字段:

  1. 姓名
  2. 类型
  3. 地位

根据类型,我将 Queue 分解为更多子类,每个子类都有自己的额外字段。例如:

ProductionQueue extends Queue { startDate, endDate }
ShippingQueue extends Queue { shippingDate, shippingAgent }
...
Run Code Online (Sandbox Code Playgroud)

我在 android studio 中创建了 Queue 作为基类并从中扩展我的子类,但代码无法编译并抱怨缺少字段(子类字段)。下面是一个例子:

ProductionQueue extends Queue { startDate, endDate }
ShippingQueue extends Queue { shippingDate, shippingAgent }
...
Run Code Online (Sandbox Code Playgroud)

在编译时我收到:错误:查询返回的列在 com.example.room.ProductionQueue 中没有字段 [startDate, endDate] 即使它们被注释为非空或原始。查询返回的列:[id,name,type,status]。

[id,name,type,status]来自父类,而[startDate, endDate]子类字段。

在我的应用程序中的各种情况下,我只会列出队列名称、类型和状态,并且我更愿意将队列数据保存在单个表中以便快速查询。

我可以为各个子类创建子表并使用关系,但如果 R​​oom 允许继承,所有这些都可以轻松避免。如果是的话,房间是否支持这种继承,我怎样才能使它工作?

谢谢。

android android-room

7
推荐指数
1
解决办法
5427
查看次数

ReactJs - 如何在thunk promise中获得更新状态

我正在开发一个应用程序,在将数据发送到服务器之前,我们检查字段是否为空并用虚拟数据填充它们.

在向服务器发送数据之前说明:

state = {
  title: '',
  body: ''
}
Run Code Online (Sandbox Code Playgroud)

我的调度功能:

this.props.dispatch((dispatch) => {
  dispatch(initializeProcessForm());
  dispatch(processForm(state));
});
Run Code Online (Sandbox Code Playgroud)

在里面initializeProcessForm我检查字段是否为空并适当填充它们,但考虑到我们不应该改变状态,我必须创建一个新的状态对象并返回.

在这里,我松开了对当前的引用(函数完成后的新状态),并且当dispatch(processForm(state))提交给服务器时,它仍然保留带有空白字段的旧数据.

如何在不改变状态反应方式的情况下解决这个问题?

我可以访问新状态的唯一方法是,当我处理成功或拒绝表单时,我在Reducer内部进行API调用,然后转到reducer.

reactjs redux react-redux

4
推荐指数
1
解决办法
196
查看次数

Room:不确定如何将 Cursor 转换为该方法的返回类型

我无法在我的 Dao 中使用 LiveData。删除 LiveData 可以解决编译错误。这是代码:

我查看了我的 Gradle 构建文件。我没有使用任何旧的支持库。我的代码也没有其他一般错误。

基类:

@Entity
@JsonClass(generateAdapter = false)
abstract class BaseEntity(
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "_id")
    var id: Long = 0L,

    @ColumnInfo(name = "_created_at")
    @Json(name = "created_at")
    var createdAt: Date = Date(),

    @ColumnInfo(name = "_updated_at")
    @Json(name = "updated_at")
    var updatedAt: Date = Date(),

    @ColumnInfo(name = "_created_by")
    @Json(name = "created_by")
    var createdBy: String = ""
) {
    init {
        val applicationContext = BaseApp.applicationContext() as BaseApp
        val username = applicationContext.sharedPreference?.getString(
            applicationContext.getString(R.string.setting_login_username),
            ""
        )
        if (username …
Run Code Online (Sandbox Code Playgroud)

kotlin android-room

0
推荐指数
1
解决办法
1072
查看次数

标签 统计

android-room ×2

android ×1

kotlin ×1

react-redux ×1

reactjs ×1

redux ×1