2

I can't make the relation between these entities.

with SQL query I can make relation but with room not working.

I think this a room bug but don't know why. and taking me a lot of time.

using 2.2.6 version.

@Entity
data class Movie(
    @SerializedName("country")
    val country: String,
    @SerializedName("genres")
    val genres: List<String>,
    @SerializedName("id")
    @PrimaryKey(autoGenerate = false)
    val id: Int,
    @SerializedName("images")
    val images: List<String>? = null,
    @SerializedName("imdb_rating")
    val imdbRating: String,
    @SerializedName("poster")
    val poster: String,
    @SerializedName("title")
    val title: String,
    @SerializedName("year")
    val year: String
)
@Entity
data class FavoriteMovie(
    @PrimaryKey(autoGenerate = false)
    val id: Int ,
    val movieId: Int,
    val createTime:String
)

data class MovieAndFavoriteMovie(
    @Embedded val movie: Movie,
    @Relation(parentColumn = "id", entityColumn = "movieId")
    val favoriteMovie: FavoriteMovie
)

DAO

    @Query("SELECT * FROM Movie")
    @Transaction
    fun getAllFavoriteMovies(): Flow<List<MovieAndFavoriteMovie>>

Error log

java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter favoriteMovie
    at com.movie_explorer.data.database.MovieAndFavoriteMovie.<init>(Unknown Source:7)
    at com.movie_explorer.data.database.dao.FavoriteMovieDao_Impl$5.call(FavoriteMovieDao_Impl.java:166)
    at com.movie_explorer.data.database.dao.FavoriteMovieDao_Impl$5.call(FavoriteMovieDao_Impl.java:112)
    at androidx.room.CoroutinesRoom$Companion$createFlow$1$1.invokeSuspend(CoroutinesRoom.kt:81)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
Pejman Azad
  • 165
  • 1
  • 11

0 Answers0