I want to use Paging 3 Library for pagination with db as SSO and I have some data classes which use Embedded annotation (one to many, relation) sample ↓
data class PojoEmbended(
@Embedded
var messageEntity: MessageEntity,
@Relation(
parentColumn = "messageId",
entityColumn = "messageId",
entity = AttachmentsEntity::class
)
var listAttachments: List<AttachmentsEntity>
)
AttachmentsEntity looks like this↓
@Entity(
tableName = "ChatAttachments",
foreignKeys = [ForeignKey(
entity = MessageEntity::class,
parentColumns = ["messageId"],
childColumns = ["messageId"],
onDelete = ForeignKey.CASCADE
)],
primaryKeys = ["messageId"]
)
data class AttachmentsEntity(
@ColumnInfo(name = "messageId", index = true)
var messageId: String = "",
@ColumnInfo(name = "title")
var title: String = "",
@ColumnInfo(name = "imageUrl")
var imageUrl: String = "",
@ColumnInfo(name = "imageType")
var imageType: String = ""
)
Function in DAO ↓
@Transaction
@Query("SELECT * FROM MessageTable")
suspend fun getAllChatMessages(): PagingSource<Int, PojoEmbended>
When I try to make a project, it fails with an Error ↓
error: Not sure how to convert a Cursor to this method's return type (androidx.paging.PagingSource<"path".PojoEmbended>). public abstract java.lang.Object getAllChatMessages(@org.jetbrains.annotations.NotNull()
Here is the question ↓
What are better to do in such situation? Get from db List make my own PagingSource and tan use it in RemoteMediator or remove Embedded annotation and use TypeConverter ?