Вам не нужно хранить изображения, принадлежащие сообщению, на уровне базы данных, поскольку каждое изображение будет храниться со ссылкой на свою (родительскую) запись.
Поэтому вы хотите использовать @Игнорировать аннотацию для var images : ArrayList<String>) : Parcelable{
(@Ignore исключает, что это столбец в таблице).
Вам нужна функция для извлечения путей к изображениям. При этом использовался бы запрос allImages, как в ImageDao, поэтому вы должны передать объект ImageDao в функцию.
Так как ваш код может включать в себя что-то вроде: -
@Ignore
internal var images = ArrayList<String>()
constructor() {}
fun getImages(imageDao: ImageDao): ArrayList<String> {
val result = ArrayList<String>()
val imageTableList = imageDao.allImages(this.id!!)
for (it in imageTableList) {
result.add(it.getImageURL())
}
return result
}
fun getImages(): ArrayList<String> {
return this.images
}
fun setImages(imageDao: ImageDao) {
this.images = getImages(imageDao)
}
Тогда вы можетеиспользуйте getImages()
, чтобы получить ArrayList, сохраненный с помощью setImages(your_ImageDao_instance)
(который должен быть запущен для обновления изображений), или, альтернативно, вы можете использовать getImages(your_ImageDao_instance)
(который получает imageUrl в соответствии с базой данных (то есть тогда будетпеременная images в PostTable не нужна)).
- Обратите внимание, что приведенный выше код является принципиальным кодом, он не был протестирован или выполнен и поэтому может содержать некоторые ошибки.