package org.javaee7.jpa.listeners; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; /** * @author Arun Gupta */ @Entity @Table(name = "MOVIE_LISTENER") @XmlRootElement @NamedQueries({ @NamedQuery(name = Movie.FIND_BY_NAME, query = "SELECT m FROM Movie m WHERE m.name = :name") }) @EntityListeners(MovieListener.class) public class Movie implements Serializable { private static final long serialVersionUID = 1L; public static final String FIND_BY_NAME = "Movie.findByName"; @Id @NotNull private Integer id; @NotNull @Size(min = 1, max = 50) private String name; @NotNull @Size(min = 1, max = 200) private String actors; @Transient private Integer rating; public Movie() { } public Movie(Integer id) { this.id = id; } public Movie(Integer id, String name, String actors) { this.id = id; this.name = name; this.actors = actors; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getActors() { return actors; } public void setActors(String actors) { this.actors = actors; } public Integer getRating() { return rating; } public void setRating(Integer rating) { this.rating = rating; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Movie movie = (Movie) o; return id.equals(movie.id); } @Override public int hashCode() { return id.hashCode(); } @Override public String toString() { return name; } }