User.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.izouma.awesomeAdmin.domain;
  2. import com.alibaba.excel.annotation.ExcelIgnore;
  3. import com.fasterxml.jackson.annotation.JsonIgnore;
  4. import com.izouma.awesomeAdmin.annotations.Searchable;
  5. import com.izouma.awesomeAdmin.config.Constants;
  6. import com.izouma.awesomeAdmin.converter.FileObjectConverter;
  7. import com.izouma.awesomeAdmin.converter.FileObjectListConverter;
  8. import com.izouma.awesomeAdmin.security.Authority;
  9. import io.swagger.annotations.ApiModel;
  10. import lombok.AllArgsConstructor;
  11. import lombok.Builder;
  12. import lombok.Data;
  13. import lombok.NoArgsConstructor;
  14. import org.hibernate.annotations.BatchSize;
  15. import javax.persistence.*;
  16. import javax.validation.constraints.Pattern;
  17. import javax.validation.constraints.Size;
  18. import java.io.Serializable;
  19. import java.util.HashSet;
  20. import java.util.List;
  21. import java.util.Set;
  22. @Data
  23. @Entity
  24. @AllArgsConstructor
  25. @NoArgsConstructor
  26. @Builder
  27. @ApiModel(value = "用户", description = "用户")
  28. public class User extends BaseEntity implements Serializable {
  29. @Pattern(regexp = Constants.Regex.USERNAME)
  30. @Size(min = 1, max = 50)
  31. @Column(nullable = false, unique = true)
  32. @Searchable
  33. private String username;
  34. @Searchable
  35. private String nickname;
  36. private String avatar;
  37. @JsonIgnore
  38. private String password;
  39. private boolean del = false;
  40. @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.DETACH})
  41. @JoinTable(
  42. name = "user_authority",
  43. joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
  44. inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
  45. @BatchSize(size = 20)
  46. @ExcelIgnore
  47. private Set<Authority> authorities = new HashSet<>();
  48. private String openId;
  49. private String sex;
  50. private String language;
  51. private String city;
  52. private String province;
  53. private String country;
  54. @Searchable
  55. private String phone;
  56. private String email;
  57. }