房间查询返回父类类型的LiveData

问题描述 投票:0回答:1

我有三节课:

  • 任务(父类)
  • ProgressTask(Task的子类)
  • TodolistTask(Task的子类)

ProgressTask和TodolistTask因参数不同而不同。

ProgressTask和TodolistTask都是我的Room db中的实体。我想要TaskDao,我想在其中调用此查询:

@Query("SELECT * FROM  progressTask_table UNION SELECT * FROM todolistTask_table")
LiveData<List<Task>> getAllTasks();

可能吗?现在我得到一个合理的错误,说左边和右边的SELECT有不同的列数。

android sql android-sqlite android-room
1个回答
0
投票

使用联合时,必须在查询中调出各个列。

您的对象很可能具有不同的列。示例ProgressTask有一个TodolistTask没有的日期。

如果在查询的两个选定部分中调出基类中的每一列,它将起作用。

© www.soinside.com 2019 - 2024. All rights reserved.