package com.springone.myrestaurants.domain; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Version; import org.springframework.format.annotation.DateTimeFormat; @Entity @Table(name = "user_account") public class UserAccount { private String userName; private String firstName; private String lastName; @Temporal(TemporalType.TIMESTAMP) @DateTimeFormat(style = "S-") private Date birthDate; @ManyToMany(cascade = CascadeType.ALL) private Set<Restaurant> favorites = new java.util.HashSet<Restaurant>(); @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Version @Column(name = "version") private Integer version; public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public Integer getVersion() { return this.version; } public void setVersion(Integer version) { this.version = version; } public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public String getFirstName() { return this.firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return this.lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Date getBirthDate() { return this.birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public Set<Restaurant> getFavorites() { return this.favorites; } public void setFavorites(Set<Restaurant> favorites) { this.favorites = favorites; } public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Id: ").append(getId()).append(", "); sb.append("Version: ").append(getVersion()).append(", "); sb.append("UserName: ").append(getUserName()).append(", "); sb.append("FirstName: ").append(getFirstName()).append(", "); sb.append("LastName: ").append(getLastName()).append(", "); sb.append("BirthDate: ").append(getBirthDate()).append(", "); sb.append("Favorites: ").append(getFavorites() == null ? "null" : getFavorites().size()); return sb.toString(); } }