argos/dmp-backend/web/src/main/java/eu/eudat/migration/entities/User.java

127 lines
2.7 KiB
Java

package eu.eudat.migration.entities;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "users")
public class User {
@Id
private Long id;
private String firstname;
private String surname;
private String email;
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "org_id")
private Organization organization;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "language_id")
private Language language;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "users_perms",
joinColumns = {@JoinColumn(name = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "perm_id")}
)
@LazyCollection(LazyCollectionOption.FALSE)
private Set<Perm> perms = new HashSet<>();
@Override
public String toString() {
return "User{" +
"id=" + id +
", firstname='" + firstname + '\'' +
", surname='" + surname + '\'' +
", email='" + email + '\'' +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
", organization=" + organization +
", language=" + language +
", perms=" + perms +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Organization getOrganization() {
return organization;
}
public void setOrganization(Organization organization) {
this.organization = organization;
}
public Language getLanguage() {
return language;
}
public void setLanguage(Language language) {
this.language = language;
}
public Set<Perm> getPerms() {
return perms;
}
public void setPerms(Set<Perm> perms) {
this.perms = perms;
}
}