Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.team5.beertag.models;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- import org.hibernate.annotations.LazyCollection;
- import org.hibernate.annotations.LazyCollectionOption;
- import javax.persistence.*;
- import javax.validation.constraints.Size;
- import java.util.List;
- import java.util.Objects;
- import java.util.Set;
- @Entity
- @Table(name = "users")
- public class User {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name = "user_id")
- private int id;
- @Column(name = "username")
- @Size(min = 2, max = 15, message = "Username must be between 2 and 15 characters.")
- private String username;
- @Column(name = "role_id")
- @Size(min = 2, max = 10, message = "User role must be between 2 and 10 characters.")
- private String userRole;
- @Column(name = "avatar_url")
- @Size(min = 2, max = 255, message = "Avatar URL must be between 2 and 255 characters.")
- private String avatarURL;
- @Column(name = "password")
- @Size(min = 5, max = 10, message = "Password must be between 5 and 10 characters.")
- private String password;
- @LazyCollection(LazyCollectionOption.FALSE)
- @OneToMany(mappedBy = "user")
- private Set<BeerStatus> beerStatuses;
- @OneToMany(mappedBy = "user")
- private List<Rating> beerRatings;
- public User() {
- }
- public User(String username, String password, String userRole, String avatarURL) {
- this.username = username;
- this.password = password;
- this.userRole = userRole;
- this.avatarURL = avatarURL;
- }
- private void setUsername(String username) {
- this.username = username;
- }
- private void setUserRole(String userRole) {
- this.userRole = userRole;
- }
- private void setAvatarURL(String avatarURL) {
- this.avatarURL = avatarURL;
- }
- public int getId() {
- return id;
- }
- public String getUsername() {
- return username;
- }
- public String getUserRole() {
- return userRole;
- }
- public String getAvatarURL() {
- return avatarURL;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Set<BeerStatus> getBeerStatuses() {
- return beerStatuses;
- }
- public void setBeerStatuses(Set<BeerStatus> beerStatuses) {
- this.beerStatuses = beerStatuses;
- }
- @Override
- public boolean equals(Object o) {
- if (o == this) return true;
- if (!(o instanceof User)) {
- return false;
- }
- User other = (User) o;
- return this.getUsername().equals(other.getUsername());
- }
- @Override
- public int hashCode() {
- return Objects.hash(this.getUsername());
- }
- @JsonIgnore
- public List<Rating> getBeerRatings() {
- return beerRatings;
- }
- public void setBeerRatings(List<Rating> beerRatings) {
- this.beerRatings = beerRatings;
- }
- }
- // @OneToMany
- // @LazyCollection(LazyCollectionOption.FALSE)
- // @JoinTable(
- // name = "user_beer_wishlist",
- // joinColumns = @JoinColumn(name = "user_id"),
- // inverseJoinColumns = @JoinColumn(name = "Beer_id")
- // )
- // private List<Beer> wishlist;
- //
- // @OneToMany
- // @LazyCollection(LazyCollectionOption.FALSE)
- // @JoinTable(
- // name = "tasted_beer",
- // joinColumns = @JoinColumn(name = "user_id"),
- // inverseJoinColumns = @JoinColumn(name = "Beer_id")
- // )
- // private List<Beer> tasted;
- //
- // @OneToMany
- // @LazyCollection(LazyCollectionOption.FALSE)
- // @JoinTable(
- // name = "Ratings",
- // joinColumns = @JoinColumn(name = "user_id"),
- // inverseJoinColumns = @JoinColumn(name = "beer_id")
- // )
- // private List<Beer> rated;
- //
- //
- // public List<Beer> getWishlist() {
- // return wishlist;
- // }
- //
- // public void setWishlist(List<Beer> wishlist) {
- // this.wishlist = wishlist;
- // }
- //
- // public List<Beer> getTasted() {
- // return tasted;
- // }
- //
- // public void setTasted(List<Beer> tasted) {
- // this.tasted = tasted;
- // }
- //
- // public List<Beer> getRated() {
- // return rated;
- // }
- //
- // public void setRated(List<Beer> rated) {
- // this.rated = rated;
- // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement