package odera.projects.appointmentssoftware.models; import javax.persistence.*; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import java.util.List; @Entity @Table(name = "users", uniqueConstraints = { @UniqueConstraint(columnNames = "username"), @UniqueConstraint(columnNames = "email") }) public class User { @Id //primary key @GeneratedValue(strategy = GenerationType.IDENTITY) private long userId; @NotBlank @Size(max = 20) private String username; @NotBlank @Size(max = 120) private String password; @NotBlank @Size(max = 50) @Email private String email; @OneToMany(mappedBy = "userId", cascade = CascadeType.ALL) private List<Appointment> appointments; public User() { } public User(String username, String email, String password) { this.username = username; this.email = email; this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public List<Appointment> getAppointments() { return appointments; } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public void setAppointments(List<Appointment> appointments) { this.appointments = appointments; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }