package com.allstate.entities; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import javax.persistence.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.ArrayList; import java.util.Date; import java.util.List; @Entity @Table(name = "students") @Data public class Student { private int id; private int version; private String email; private Date created; private Date modified; // associations *** private List<Registration> registrations; private List<Klass> klasses; public Student() { } public Student(String email) { this.email = email; } @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @Version public int getVersion() { return version; } public void setVersion(int version) { this.version = version; } @Size(min = 7) @NotNull public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @CreationTimestamp public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } @UpdateTimestamp public Date getModified() { return modified; } public void setModified(Date modified) { this.modified = modified; } // --------------------------------------------------------------------- // // --------------------------------------------------------------------- // // --------------------------------------------------------------------- // @OneToMany(mappedBy = "student") @JsonIgnore public List<Registration> getRegistrations() { return registrations; } public void setRegistrations(List<Registration> registrations) { this.registrations = registrations; } @ManyToMany(mappedBy="students") @JsonIgnore public List<Klass> getKlasses() { return klasses; } public void setKlasses(List<Klass> klasses) { this.klasses = klasses; } }