yandex
loader

please wait

  • Naveen Shastri Mar-14-2019 06:20:35 AM ( 2 months ago )

     

    I have a data class like this

     

    @Entity
    data class Question(
    
            @field:SerializedName("question")
            var question: String? = null,
    
            @field:SerializedName("answers")
            var answers: ArrayList<String?>? = null,
    
            @field:SerializedName("id")
            @PrimaryKey
            var id: Int? = null
    )

     

    Then in DAO I have saving and getting methods like this

        @Dao
    interface QnADao {
    
        @Insert(onConflict = OnConflictStrategy.REPLACE)
        fun saveQuestion(questions:Question)
    
        @Insert(onConflict = OnConflictStrategy.REPLACE)
        fun saveAllQuestions(questions: List<Question?>?)
    
    
        @Query("SELECT * from Question")
        fun getAllQnA():List<Question>
    
    
    }

     

    I am saving a list of Questions and then later on retrieving them. So whenever I retrieve them I get the list sorted according to the id which is the primary key.

     

    So if I am saving questions with id:254, id:23, id:45 and id:92 then I am getting it like this id:23, id:45, id:92 and id:254

    But I don't need a sorted list like that, I need to get the data as it was saved in the database. Any help would be appreciated

  • Nageshwer Reddy Mar-14-2019 06:22:24 AM ( 2 months ago )

    Try to use autoGenerate = true for primary key so it will create PK number in sequence

    See below lines

    @PrimaryKey(autoGenerate = true)

    So that now your insert and retrive order will be same

  • Lucky Negi Mar-14-2019 06:23:41 AM ( 2 months ago )

    You can add a Date field to your Question entity

    @field:SerializedName("date")
    var date: Date? = null,

    and order your entities by date

    @Query("SELECT * FROM Question ORDER BY date DESC")

Please login

Similar Discussion

Recommended For You