Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/wediscussmovies/project/model/Movie.java

    r2a5d6a3 r2d57cad  
    11package com.wediscussmovies.project.model;
    2 
    3 import lombok.Data;
    42
    53import javax.persistence.*;
    64import java.sql.Date;
    7 import java.util.Comparator;
    8 import java.util.List;
    9 @Data
     5import java.util.Collection;
     6import java.util.Objects;
     7
    108@Entity
    11 @Table (name="movies")
     9@Table(name = "movies", schema = "project", catalog = "db_202122z_va_prj_wediscussmovies")
    1210public class Movie {
     11    @GeneratedValue(strategy = GenerationType.IDENTITY)
    1312    @Id
    14     @GeneratedValue
    15     @Column(name="movie_id", nullable = false)
    16     private int movie_id;
     13    @Column(name = "movie_id")
     14    private int movieId;
     15    @Basic
     16    @Column(name = "title")
     17    private String title;
     18    @Basic
     19    @Column(name = "description")
     20    private String description;
     21    @Basic
     22    @Column(name = "image_url")
     23    private String imageUrl;
     24    @Basic
     25    @Column(name = "airing_date")
     26    private Date airingDate;
     27    @Basic
     28    @Column(name = "imdb_rating")
     29    private Double imdbRating;
     30    @Basic
     31    @Column(name = "director_id")
     32    private Integer directorId;
     33    @OneToMany(mappedBy = "moviesByMovieId")
     34    private Collection<Discussion> discussionsByMovieId;
     35    @OneToMany(mappedBy = "moviesByMovieId")
     36    private Collection<MovieActorsEntity> movieActorsByMovieId;
     37    @OneToMany(mappedBy = "moviesByMovieId")
     38    private Collection<MovieGenresEntity> movieGenresByMovieId;
     39    @OneToMany(mappedBy = "moviesByMovieId")
     40    private Collection<MovieLikesEntity> movieLikesByMovieId;
     41    @OneToMany(mappedBy = "moviesByMovieId")
     42    private Collection<MovieRatesEntity> movieRatesByMovieId;
     43    @ManyToOne
     44    @JoinColumn(name = "director_id", referencedColumnName = "person_id",insertable = false, updatable = false)
     45    private Person personsByDirectorId;
    1746
    18     @Column(name="title", length = 150, unique = true, nullable = false)
    19     private String Title;
    20 
    21     @Column(name="description", nullable = false, length = 1000)
    22     private String description;
    23 
    24     @Column(name="image_url", length = 300, nullable = false)
    25     private String image_url;
    26 
    27     @Column(name="airing_date")
    28     private Date airing_date;
    29 
    30     @Column(name="imdb_rating")
    31     private float imdb_rating;
    32 
    33     @Column(name="director_id")
    34     @ManyToOne
    35     private Person director;
    36 
    37     @ManyToMany(mappedBy = "movie_actors")
    38     private List<Person> actors;
    39 
    40     @ManyToMany(mappedBy = "movie_genres")
    41     private List<Genre> genres;
    42 
    43     public boolean isFromGenre(Genre genre){
    44         for(Genre g: genres){
    45             if(g.getGenre_id() == genre.getGenre_id())
    46                 return true;
    47         }
    48         return false;
    49     }
    50     public boolean hasActor(Person p){
    51         for(Person person: actors){
    52             if(person.getPerson_id() == p.getPerson_id())
    53                 return true;
    54         }
    55         return false;
     47    public int getMovieId() {
     48        return movieId;
    5649    }
    5750
    58     public boolean isDirectedBy(Person p){
    59         return director.getPerson_id() == p.getPerson_id();
     51    public void setMovieId(int movieId) {
     52        this.movieId = movieId;
    6053    }
    6154
    62     public static Comparator<Movie> comparatorTitle = Comparator.comparing(Movie::getTitle);
     55    public String getTitle() {
     56        return title;
     57    }
     58
     59    public void setTitle(String title) {
     60        this.title = title;
     61    }
     62
     63    public String getDescription() {
     64        return description;
     65    }
     66
     67    public void setDescription(String description) {
     68        this.description = description;
     69    }
     70
     71    public String getImageUrl() {
     72        return imageUrl;
     73    }
     74
     75    public void setImageUrl(String imageUrl) {
     76        this.imageUrl = imageUrl;
     77    }
     78
     79    public Date getAiringDate() {
     80        return airingDate;
     81    }
     82
     83    public void setAiringDate(Date airingDate) {
     84        this.airingDate = airingDate;
     85    }
     86
     87    public Double getImdbRating() {
     88        return imdbRating;
     89    }
     90
     91    public void setImdbRating(Double imdbRating) {
     92        this.imdbRating = imdbRating;
     93    }
     94
     95    public Integer getDirectorId() {
     96        return directorId;
     97    }
     98
     99    public void setDirectorId(Integer directorId) {
     100        this.directorId = directorId;
     101    }
     102
     103    @Override
     104    public boolean equals(Object o) {
     105        if (this == o) return true;
     106        if (o == null || getClass() != o.getClass()) return false;
     107
     108        Movie that = (Movie) o;
     109
     110        if (movieId != that.movieId) return false;
     111        if (!Objects.equals(title, that.title)) return false;
     112        if (!Objects.equals(description, that.description)) return false;
     113        if (!Objects.equals(imageUrl, that.imageUrl)) return false;
     114        if (!Objects.equals(airingDate, that.airingDate)) return false;
     115        if (!Objects.equals(imdbRating, that.imdbRating)) return false;
     116        if (!Objects.equals(directorId, that.directorId)) return false;
     117
     118        return true;
     119    }
     120
     121    public Movie(String title, String description, String imageUrl, Date airingDate, Double imdbRating, Integer directorId) {
     122        this.title = title;
     123        this.description = description;
     124        this.imageUrl = imageUrl;
     125        this.airingDate = airingDate;
     126        this.imdbRating = imdbRating;
     127        this.directorId = directorId;
     128    }
    63129
    64130    public Movie() {
    65131    }
    66132
    67     public Movie(String title, String description, String image_url, Date airing_date, float imdb_rating, Person director, List<Person> actors, List<Genre> genres) {
    68         Title = title;
    69         this.description = description;
    70         this.image_url = image_url;
    71         this.airing_date = airing_date;
    72         this.imdb_rating = imdb_rating;
    73         this.director = director;
    74         this.actors = actors;
    75         this.genres = genres;
     133    @Override
     134    public int hashCode() {
     135        int result = movieId;
     136        result = 31 * result + (title != null ? title.hashCode() : 0);
     137        result = 31 * result + (description != null ? description.hashCode() : 0);
     138        result = 31 * result + (imageUrl != null ? imageUrl.hashCode() : 0);
     139        result = 31 * result + (airingDate != null ? airingDate.hashCode() : 0);
     140        result = 31 * result + (imdbRating != null ? imdbRating.hashCode() : 0);
     141        result = 31 * result + (directorId != null ? directorId.hashCode() : 0);
     142        return result;
     143    }
     144
     145    public Collection<Discussion> getDiscussionsByMovieId() {
     146        return discussionsByMovieId;
     147    }
     148
     149    public void setDiscussionsByMovieId(Collection<Discussion> discussionsByMovieId) {
     150        this.discussionsByMovieId = discussionsByMovieId;
     151    }
     152
     153    public Collection<MovieActorsEntity> getMovieActorsByMovieId() {
     154        return movieActorsByMovieId;
     155    }
     156
     157    public void setMovieActorsByMovieId(Collection<MovieActorsEntity> movieActorsByMovieId) {
     158        this.movieActorsByMovieId = movieActorsByMovieId;
     159    }
     160
     161    public Collection<MovieGenresEntity> getMovieGenresByMovieId() {
     162        return movieGenresByMovieId;
     163    }
     164
     165    public void setMovieGenresByMovieId(Collection<MovieGenresEntity> movieGenresByMovieId) {
     166        this.movieGenresByMovieId = movieGenresByMovieId;
     167    }
     168
     169    public Collection<MovieLikesEntity> getMovieLikesByMovieId() {
     170        return movieLikesByMovieId;
     171    }
     172
     173    public void setMovieLikesByMovieId(Collection<MovieLikesEntity> movieLikesByMovieId) {
     174        this.movieLikesByMovieId = movieLikesByMovieId;
     175    }
     176
     177    public Collection<MovieRatesEntity> getMovieRatesByMovieId() {
     178        return movieRatesByMovieId;
     179    }
     180
     181    public void setMovieRatesByMovieId(Collection<MovieRatesEntity> movieRatesByMovieId) {
     182        this.movieRatesByMovieId = movieRatesByMovieId;
     183    }
     184
     185    public Person getPersonsByDirectorId() {
     186        return personsByDirectorId;
     187    }
     188
     189    public void setPersonsByDirectorId(Person personsByDirectorId) {
     190        this.personsByDirectorId = personsByDirectorId;
    76191    }
    77192}
    78 
    79 
    80 /*
    81 
    82     create table movies(
    83         movie_id serial primary key,
    84         title varchar(150) not null unique,
    85         description varchar(1000) not null,
    86         image_url varchar(300) not null,
    87         airing_date date not null,
    88         imdb_rating float,
    89         director_id integer,
    90         constraint fk_movie_director foreign key (director_id) references persons(person_id)
    91         on delete cascade on update cascade,
    92         constraint ck_person_is_director check( check_constraint_person(director_id) = 'D')
    93     );
    94  */
Note: See TracChangeset for help on using the changeset viewer.