当前位置: 首页 > 知识库问答 >
问题:

错误:查询返回的列没有

东门清夷
2023-03-14

我正在实现房间数据库。这是我的POJO类

public class Task implements Serializable {

    @PrimaryKey(autoGenerate = true)
    private int id;

    @ColumnInfo(name = "task_name")
    private String task;

    @ColumnInfo(name = "description")
    private String desc;

    @ColumnInfo(name = "finish_by")
    private String finishBy;

    @ColumnInfo(name = "finished")
    private boolean finished;

    @ColumnInfo(name="no_of_days")
    private String no_of_days;

    public String getNo_of_days() {
        return no_of_days;
    }

    public void setNo_of_days(String no_of_days) {
        this.no_of_days = no_of_days;
    }

}

这是DAO类

@Dao
public interface TaskDao {

    @Update
    void update(Task task);
    @Query("SELECT task_name,description,no_of_days FROM task")
    List<Task> getTasksandDescription();
}

在运行我的代码时,我收到以下错误

com.example.myapplication1.model.Task has some fields [id, finish_by, finished] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). 
Columns returned by the query: task_name, description, no_of_days. Fields in com.example.myapplication1.model.Task: id, task_name, description, finish_by, finished, no_of_days.

共有1个答案

程沛
2023-03-14

这不是一个错误,而是一个警告,它告诉您正在将SQL映射到Pojo,但没有返回设置Pojo所需的所有字段。因此类的字段比查询返回的字段多,您可以通过执行以下操作来解决这一问题。

I.执行select*以返回所有字段

@Query("SELECT * FROM task")

ii.在不感兴趣的字段中添加@Ignore注释

iii.创建另一个Java类,它只包含您感兴趣的字段,并从查询返回。

 类似资料:
  • 下面是一个POJO示例 现在,在我的productDAO中,如果我有一个像这样的查询 我会得到这样一个错误: 查询返回的列在...Product中没有字段[price],即使它们被注释为非空或原语。查询返回的列:[id,Name] a)如果我进入我的产品并设置 错误仍然存在。 b)如果我进入我的产品和设置 错误会消失,但如果我有另一个查询,例如 因为设置了,所以价格返回为0.0。 那么如何解决这一

  • 我保留了一份按“顺序”排列的产品清单。当我试着从房间里拿一份产品清单的时候。我得到以下错误。但我做了一个TypeConvertor。会有什么错误呢? 订单 产品 命令道 转换器 错误 java:53:错误:查询返回的列在com.vepe.navigation.model.entity.product中没有字段[id,orderId,name,pathImage,price,priceDiscoun

  • 问题内容: 当我尝试运行以下查询时出现错误: 是什么导致此错误? 问题答案: 将一个返回多列的子查询放在列表中,然后从中选择。 首先,相关子查询将是一个坏主意。但是,您的查询甚至没有关联,但是 没有关联 (没有链接到外部查询),并且似乎返回了多行。这导致产生笛卡尔积的(可能非常昂贵且荒谬的)交叉连接,可能不是您的(秘密)意图。 看起来您确实想要: 两者也都是毫无意义的。WHERE条件将一个强制为a

  • 问题内容: 如何获取使用SQL Server的SQL查询返回的列数? 例如,如果我有如下查询: 它应该返回表A1中的总列数+表A2中的总列数。但是查询可能会更复杂。 问题答案: 这是一种方法: 您可以通过创建视图来执行类似的操作。

  • 本文向大家介绍Node.js 发生错误时返回查询,包括了Node.js 发生错误时返回查询的使用技巧和注意事项,需要的朋友参考一下 示例 err发生错误时,可以将执行的查询附加到对象上:            

  • 当“事件ID”与“用户ID”匹配时,im会尝试从我的“事件”表中选择所有数据。然而,我得到一个错误1242,子查询返回超过1行。 我理解我的子查询将返回多行,因为一个用户可以参加多个事件。那么我如何使我的查询接受多行呢?