Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.arjunsk.springsecurity.security.persistance.entities;
- import java.util.HashSet;
- import java.util.Set;
- import javax.persistence.Entity;
- import javax.persistence.FetchType;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.JoinColumn;
- import javax.persistence.JoinTable;
- import javax.persistence.ManyToMany;
- import javax.persistence.Table;
- import javax.persistence.UniqueConstraint;
- import javax.validation.constraints.Email;
- import javax.validation.constraints.NotBlank;
- import javax.validation.constraints.Size;
- import org.hibernate.annotations.NaturalId;
- import lombok.Data;
- @Data
- @Entity
- @Table( name = "users",
- uniqueConstraints = {
- @UniqueConstraint(columnNames = { "username" }),
- @UniqueConstraint(columnNames = { "email" })
- }
- )
- public class UserEntity{
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- @NotBlank
- @Size(max = 40)
- private String name;
- @NotBlank
- @Size(max = 15)
- private String username;
- @NaturalId
- @NotBlank
- @Size(max = 40)
- @Email
- private String email;
- @NotBlank
- @Size(max = 100)
- private String password;
- @ManyToMany(fetch = FetchType.LAZY)
- @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
- private Set<RoleEntity> roles = new HashSet<>();
- // @JoinTable is the join table result of @ManyToMany
- public UserEntity() {}
- public UserEntity(String name, String username, String email, String password) {
- this.name = name;
- this.username = username;
- this.email = email;
- this.password = password;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement