TeamMember.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.izouma.walkchina.domain;
  2. import com.fasterxml.jackson.annotation.JsonInclude;
  3. import lombok.AllArgsConstructor;
  4. import lombok.Builder;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import org.hibernate.annotations.Where;
  8. import org.springframework.data.annotation.CreatedBy;
  9. import org.springframework.data.annotation.CreatedDate;
  10. import org.springframework.data.annotation.LastModifiedBy;
  11. import org.springframework.data.annotation.LastModifiedDate;
  12. import org.springframework.data.jpa.domain.support.AuditingEntityListener;
  13. import javax.persistence.*;
  14. import java.util.Date;
  15. @Entity
  16. @Data
  17. @NoArgsConstructor
  18. @AllArgsConstructor
  19. @Builder
  20. @JsonInclude(JsonInclude.Include.NON_NULL)
  21. @Where(clause = "active = 1")
  22. @EntityListeners(AuditingEntityListener.class)
  23. public class TeamMember {
  24. @Id
  25. @GeneratedValue(strategy = GenerationType.AUTO)
  26. private Long id;
  27. private Long userId;
  28. private Long leader;
  29. @Temporal(TemporalType.DATE)
  30. private Date hireDate;
  31. @Temporal(TemporalType.DATE)
  32. private Date startDate;
  33. @Temporal(TemporalType.DATE)
  34. private Date endDate;
  35. @Column(columnDefinition = "bit default 1", nullable = false)
  36. @Builder.Default
  37. public Boolean active = true;
  38. @CreatedBy
  39. private String createdBy;
  40. @CreatedDate
  41. private Date createdAt;
  42. @LastModifiedBy
  43. private String modifiedBy;
  44. @LastModifiedDate
  45. private Date modifiedAt;
  46. }