Класс сущности должен быть аннотирован @Entity
У меня проблемы с созданием @Relation
, Ранее я использовал сложный запрос для обработки M:N, но я хотел попробовать более простой @Relation
и полагаться на идентификаторы. Тем не менее, я получаю ошибку всякий раз, когда я расширяю или встраиваю @Relation
учебный класс. Это работает:
@Entity(tableName = "meta",
foreignKeys = [ForeignKey(
entity = FolderEntity::class,
parentColumns = ["id"],
childColumns = ["parentId"],
onDelete = CASCADE)],
indices = [
Index(value = ["uri"], unique = true),
Index(value = ["documentId"], unique = true),
Index(value = ["parentId"])])
open class MetadataEntity {
@PrimaryKey(autoGenerate = true)
var id: Long = 0
...
}
@TypeConverters(MetadataResult::class)
class MetadataResult : MetadataEntity() {
var keywords: List<String>? = null
var parentUri: String? = null
@TypeConverter
fun fromGroupConcat(keywords: String?): List<String>? = keywords?.split(",")
}
Однако это не работает:
data class MetadataXmp(
@Embedded
val metadata:MetadataEntity,
@Relation(
parentColumn = "id",
entityColumn = "metaId",
projection = ["subjectId"],
entity = SubjectJunction::class)
var subjectIds: List<Long> = Collections.emptyList(),
@Relation(
parentColumn = "parentId",
entityColumn = "id",
projection = ["documentUri"],
entity = FolderEntity::class)
var parentUris: List<String> = Collections.emptyList())
Обратите внимание, что тип объектаclass
, data class
и т. д.) - это просто беспорядок моих попыток. Я пробовал различные версии расширения с MetadataXmp
или встраивание, абстракция, класс данных и т. д. Я не могу представить @Relation
,
3 ответа
Я сталкивался с подобным сообщением об ошибке, для меня проблема заключалась в том, что я не объявил enity в классе Database, но я аннотировал pojo, публикуя ответ, поскольку это может помочь кому-то с подобной проблемой.
Ошибка на самом деле связана с @RawQuery: seenEntities. Я наблюдал за результатом POJO вместо базового @Entity. Сообщение об ошибке просто указывает на POJO, который вводит в заблуждение. Google смотрит на улучшение сообщения об ошибке.
Я столкнулся с той же проблемой при реализации БД комнаты в нашем приложении. но в моем случае версия БД комнаты - 2.2.6, когда я увеличиваюсь до последней версии 2.3.0, моя проблема решена.