У меня есть база данных комнат, из которой я могу получить List<LearningEvent>
, который затем мне нужно преобразовать в Collection<JSONObject>
и вернуть. Как я могу это сделать эффективно?
Вот LearningEvent
класс:
@Entity(tableName = "learningEvents")
data class LearningEvent(
@ColumnInfo(name = "learningeventid")
@PrimaryKey(autoGenerate = true)
var id: Int? = null,
var sessionId: Long,
var time: Float,
var eventType: String,
var description: String,
var feedback: String
)
Вот DAO:
@Query("SELECT * FROM learningEvents WHERE sessionId = :sessionId")
suspend fun getAllLearningEvents(sessionId: Long?): List<LearningEvent>
А вот мои неработающие / нерабочие -создание кода для функции getEvents ():
override suspend fun getEvents(): Collection<JSONObject> =
withContext(Dispatchers.IO) {
Log.d("\ngetEvents(eventType)", currentSessionId.toString())
if (currentSessionId === null) {
throw Exception("Current session Id is null; Session cannot be retrieved.")
}
var gson = Gson();
// Return JSON object collection of table rows.
var learningEvents = db.learningEventDao().getAllLearningEvents(currentSessionId);
var returnCollection = emptyList<JSONObject>();
learningEvents.forEach{element ->
var singleObject = gson.toJsonTree(element);
returnCollection += singleObject;
}
return@withContext returnCollection;
}