Advertisement
Guest User

Untitled

a guest
Mar 7th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. package com.arjunsk.springsecurity.security.persistance.entities;
  2.  
  3. import java.util.HashSet;
  4. import java.util.Set;
  5.  
  6. import javax.persistence.Entity;
  7. import javax.persistence.FetchType;
  8. import javax.persistence.GeneratedValue;
  9. import javax.persistence.GenerationType;
  10. import javax.persistence.Id;
  11. import javax.persistence.JoinColumn;
  12. import javax.persistence.JoinTable;
  13. import javax.persistence.ManyToMany;
  14. import javax.persistence.Table;
  15. import javax.persistence.UniqueConstraint;
  16. import javax.validation.constraints.Email;
  17. import javax.validation.constraints.NotBlank;
  18. import javax.validation.constraints.Size;
  19.  
  20. import org.hibernate.annotations.NaturalId;
  21.  
  22. import lombok.Data;
  23.  
  24. @Data
  25. @Entity
  26. @Table( name = "users",
  27. uniqueConstraints = {
  28. @UniqueConstraint(columnNames = { "username" }),
  29. @UniqueConstraint(columnNames = { "email" })
  30. }
  31. )
  32. public class UserEntity{
  33.  
  34. @Id
  35. @GeneratedValue(strategy = GenerationType.IDENTITY)
  36. private Long id;
  37.  
  38. @NotBlank
  39. @Size(max = 40)
  40. private String name;
  41.  
  42. @NotBlank
  43. @Size(max = 15)
  44. private String username;
  45.  
  46. @NaturalId
  47. @NotBlank
  48. @Size(max = 40)
  49. @Email
  50. private String email;
  51.  
  52. @NotBlank
  53. @Size(max = 100)
  54. private String password;
  55.  
  56. @ManyToMany(fetch = FetchType.LAZY)
  57. @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
  58. private Set<RoleEntity> roles = new HashSet<>();
  59. // @JoinTable is the join table result of @ManyToMany
  60.  
  61. public UserEntity() {}
  62.  
  63. public UserEntity(String name, String username, String email, String password) {
  64. this.name = name;
  65. this.username = username;
  66. this.email = email;
  67. this.password = password;
  68. }
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement