Gorm unsupported relations for schema

Viewed 33

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

0 Answers
Related