Как получить только строку из базы данных - PullRequest
2 голосов
/ 25 марта 2020

Мне нужно получить строку из базы данных моей комнаты и установить ее в виде текста в текстовом представлении. Я использую этот код в моем дао

    @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, и я не действительно не знаю, что здесь делать.

Я нашел несколько кодов в Google, но они были для списков данных, и я хочу получить только строку.

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Вы должны выбрать только 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);
0 голосов
/ 25 марта 2020

Вы выбираете 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 ;
...