I am a beginner learning gorm. So, I want to fetch the movie_genres and genres table data, but it fails with the error MovieGenre: unsupported relations for schema MovieGenre. How to solve it?
type Movie struct {
ID int `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
Year int `json:"year"`
ReleaseDate time.Time `json:"release_date"`
Runtime int `json:"runtime"`
Rating int `json:"rating"`
MPAARating string `json:"mpaa_rating"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
MovieGenre []MovieGenre `json:"genres" gorm:"foreignKey:MovieID"`
}
type Genre struct {
ID int `json:"id"`
GenreName string `json:"genre_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type MovieGenre struct {
ID int `json:"id"`
MovieID int `json:"movie_id"`
Genre Genre `json:"genre"`
GenreID int `json:"genre_id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (MovieRepositoryImpl *MovieRepositoryImpl) GetMovieById(id int) (*Movie, error) {
var movie Movie
err := MovieRepositoryImpl.DB.First(&movie, id).Error
if err != nil {
return nil, err
}
var movie_genres []MovieGenre
err = MovieRepositoryImpl.DB.Debug().Joins("JOIN genres ON genres.id = movie_genres.genre_id").Where("movie_id = ?", id).Preload("MovieGenre").Find(&movie_genres).Error
if err != nil {
return nil, err
}
err = MovieRepositoryImpl.DB.First(&movie_genres, id).Error
movie.MovieGenre = append(movie.MovieGenre, movie_genres...)
return &movie, nil
}
I've tried adding gorm.Model to each struct model but it still error with message deleted_at column not found