1 package net.sf.r4h.model; 2 3 import java.util.Date; 4 import java.util.Set; 5 6 import javax.persistence.CascadeType; 7 import javax.persistence.Entity; 8 import javax.persistence.JoinColumn; 9 import javax.persistence.JoinTable; 10 import javax.persistence.ManyToMany; 11 import javax.persistence.Table; 12 13 @Entity 14 @Table(name = "USERS") 15 public class User extends BaseEntity { 16 @ManyToMany(cascade = CascadeType.ALL) 17 @JoinTable(name = "USER_ITEMS", joinColumns = @JoinColumn(name = "USER_ID"), inverseJoinColumns = @JoinColumn(name = "ITEM_ID")) 18 private Set<Item> items; 19 20 private boolean active; 21 22 private Date date; 23 24 public Date getDate() { 25 return date; 26 } 27 28 public void setDate(Date date) { 29 this.date = date; 30 } 31 32 public boolean isActive() { 33 return active; 34 } 35 36 public void setActive(boolean active) { 37 this.active = active; 38 } 39 40 public Set<Item> getItems() { 41 return items; 42 } 43 44 public void setItems(Set<Item> items) { 45 this.items = items; 46 } 47 48 @Override 49 public int hashCode() { 50 final int prime = 31; 51 int result = super.hashCode(); 52 result = prime * result + (active ? 1231 : 1237); 53 result = prime * result + ((date == null) ? 0 : date.hashCode()); 54 result = prime * result + ((items == null) ? 0 : items.hashCode()); 55 return result; 56 } 57 58 @Override 59 public boolean equals(Object obj) { 60 if (this == obj) 61 return true; 62 if (!super.equals(obj)) 63 return false; 64 if (getClass() != obj.getClass()) 65 return false; 66 User other = (User) obj; 67 if (active != other.active) 68 return false; 69 if (date == null) { 70 if (other.date != null) 71 return false; 72 } else if (!date.equals(other.date)) 73 return false; 74 if (items == null) { 75 if (other.items != null) 76 return false; 77 } else if (!items.equals(other.items)) 78 return false; 79 return true; 80 } 81 82 83 }