我有一个像这样的数据类
@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
)
然后在DAO中,我保存并获取了这样的方法
@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>
}
我要保存Questions
的列表,然后再检索它们。因此,每当检索它们时,我都会根据主键id
对列表进行排序。
因此,如果我要保存id:254
,id:23
,id:45
和id:92
的问题,那么我会像这样id:23
,{{1} },id:45
和id:92
但是我不需要像这样的排序列表,我需要获取保存在数据库中的数据。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:1)
尝试对主键使用autoGenerate = true,以便它将按顺序创建PK号
请参见下面的行
@PrimaryKey(autoGenerate = true)
现在您的插入和检索顺序将相同
答案 1 :(得分:1)
您可以将Date
字段添加到问题实体
@field:SerializedName("date")
var date: Date? = null,
并按日期对实体进行排序
@Query("SELECT * FROM Question ORDER BY date DESC")