Solution 1 :
You can set 0 to your uid
for autogeneration during insert (documentation)
var movieEntity = MovieEntity(0, "title","image",8.5,2020,"sci-fi,comedy"))
If you see a reason you can declare secondary constructor:
@Entity
data class MovieEntity(
@PrimaryKey(autoGenerate = true) val uid: Int,
@ColumnInfo(name = "title") val title: String?,
@ColumnInfo(name = "image") val image: String?,
@ColumnInfo(name = "rating") val rating: Double?,
@ColumnInfo(name = "release_year") val releaseYear: Int?,
@ColumnInfo(name = "genre") val genre: String?
)
{
constructor(title: String?, image: String?, rating: Double?, releaseYear: Int?, genre: String?):this(0, title, image, rating, releaseYear, genre)
}
Problem :
I am new to Kotlin (Originally Java). I am implementing Room DB and I have this class:
@Entity
data class MovieEntity(
@PrimaryKey(autoGenerate = true) val uid: Int,
@ColumnInfo(name = "title") val title: String?,
@ColumnInfo(name = "image") val image: String?,
@ColumnInfo(name = "rating") val rating: Double?,
@ColumnInfo(name = "release_year") val releaseYear: Int?,
@ColumnInfo(name = "genre") val genre: String?
)
So I wish to auto Generate uid.
I wist to call constructor like this:
var movieEntity = MovieEntity("title","image",8.5,2020,"sci-fi,comedy"))
Can I create custom constructor in Entity?