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. Thanks.
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
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")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With