【问题标题】:How to get just a string from room database如何从房间数据库中获取字符串
【发布时间】:2020-03-25 12:25:56
【问题描述】:

我需要从我的房间数据库中获取一个字符串并将其设置为文本视图中的文本我在我的 dao 中使用此代码

    @Query("SELECT question, question_heat, question_gender FROM questions WHERE question_heat = :heat AND question_gender = :gender" +
            " ORDER BY RANDOM() LIMIT 1")
    String getQuestion(int heat, int gender);

我只想从我的问题数据库中获取一个随机问题。我收到此错误:

error: Not sure how to convert a Cursor to this method's return type String getQuestion(int heat, int gender);

在构建输出中说错误在查询中

我在房间里真的很新,我使用 sqlopenhelper 有一段时间了,我真的不知道在这里做什么。

我在谷歌找到了一些代码,但它们是用于数据列表的,我只想得到一个字符串。

【问题讨论】:

  • 我不太了解您在做什么,但是当您选择 3 列时,查询很可能会返回一个对象。您应该从对象中获取列的字符串值。也许this 有帮助。

标签: java android android-room


【解决方案1】:

您必须只选择question 列。试试这个方法:

@Query("SELECT question FROM questions WHERE question_heat = :heat AND question_gender = :gender ORDER BY RANDOM() LIMIT 1")
String getQuestion(int heat, int gender);

【讨论】:

    【解决方案2】:

    您选择 3 列并希望得到字符串? 我认为你必须这样做:

     @Query("SELECT * FROM questions WHERE question_heat = :heat AND question_gender = :gender" +
            " ORDER BY RANDOM() LIMIT 1")
    QuestionEntity question(int heat, int gender);
    

    然后在存储库中手动转换它

    String result = question.getQuestion + question.getQuestionHeat + question.getQuestionGender ;
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多