ハンナ:
助けてください!私は唯一の関係1対多とdatabesの挿入のPOJOに問題があります。私は、データベース内のすべてのリストを挿入する方法POJOと誤解を持っています?
@Entity
data class Street(
@PrimaryKey(autoGenerate = true)
var id: Int = 0
) {
@Ignore
var houses: List<House>? = listOf()
}
@Entity
data class House(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var streetId: Int
) {
@Ignore
var flats: List<Flat>? = listOf()
}
@Entity
data class Flat(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var houseId: Int
)
私の男を助けてください!
アレックスGrebennikov:
あなたは削除する必要が@Ignore
注釈と利用型コンバータを。
私見唯一のPOJOのIDと全体ではなく、オブジェクトなどを保存することをお勧めします
@Entity
data class House(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var streetId: Int,
var flatIds: List<Int>? = listOf()
)
そして、あなたはすべてのそれらの干潟を必要なときだけこれらのIDでFlatDaoを問い合わせます
あなたはまだ全体のオブジェクトを保存したい場合は、Gsonに変換してから戻って変換することができます
class YourObjectConverter {
@TypeConverter
fun listToJson(value: List<YourObject>?): String {
return Gson().toJson(value)
}
@TypeConverter
fun jsonToList(value: String): List<YourObject>? {
val objects = Gson().fromJson(value, List<YourObject>::class.java) as Array<YourObject>
val list = objects.toList()
return list
}
}