package com.hr.staff.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.PrePersist; import jakarta.persistence.PreUpdate; import jakarta.persistence.Table; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.time.LocalDate; import java.time.LocalDateTime; /** * 员工扩展信息表 staff_employee_extra。 */ @Entity @Table(name = "staff_employee_extra") @Getter @Setter @NoArgsConstructor public class StaffEmployeeExtra { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "employee_id", nullable = false, unique = true) private Long employeeId; @Column(name = "education", length = 32) private String education; @Column(name = "major", length = 128) private String major; @Column(name = "school", length = 128) private String school; @Column(name = "graduation_date") private LocalDate graduationDate; @Column(name = "previous_company", length = 128) private String previousCompany; @Column(name = "work_years") private Integer workYears; @Column(name = "technical_level", length = 32) private String technicalLevel; @Column(name = "salary_grade", length = 32) private String salaryGrade; @Column(name = "contract_type", length = 32) private String contractType; @Column(name = "contract_start") private LocalDate contractStart; @Column(name = "contract_end") private LocalDate contractEnd; @Column(name = "probation_end") private LocalDate probationEnd; @Column(name = "address", length = 256) private String address; @Column(name = "remark", columnDefinition = "TEXT") private String remark; @Column(name = "created_at", nullable = false) private LocalDateTime createdAt; @Column(name = "updated_at", nullable = false) private LocalDateTime updatedAt; @PrePersist void onCreate() { if (createdAt == null) { createdAt = LocalDateTime.now(); } if (updatedAt == null) { updatedAt = LocalDateTime.now(); } } @PreUpdate void onUpdate() { updatedAt = LocalDateTime.now(); } }