package com.ecep.contract.model; import java.io.Serializable; import java.util.Objects; import com.ecep.contract.util.HibernateProxyUtils; import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.JoinTable; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; @Getter @Setter @jakarta.persistence.Entity @Table(name = "EMPLOYEE_ROLE", schema = "supplier_ms") public class EmployeeRole implements IdentityEntity, NamedEntity, Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) private Integer id; @Column(name = "CODE") private String code; @Column(name = "NAME") private String name; /** * 是否系统管理员 */ @Column(name = "SYS_ADMIN") private boolean systemAdministrator; /** * 是否管理层 */ @Column(name = "MANAGER") private boolean manager; /** * 是否启用 */ @Column(name = "IS_ACTIVE") private boolean active = true; @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }) @JoinTable(name = "EMPLOYEE_ROLE_FUNCTIONS", joinColumns = @JoinColumn(name = "ROLE_ID"), inverseJoinColumns = @JoinColumn(name = "FUNC_ID")) @JsonIgnore private java.util.List functions = new java.util.ArrayList<>(); @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }) @JoinTable(name = "EMPLOYEE_ROLES", joinColumns = @JoinColumn(name = "ROLE_ID"), inverseJoinColumns = @JoinColumn(name = "EMPLOYEE_ID")) @JsonIgnore private java.util.List employees = new java.util.ArrayList<>(); @Override public final boolean equals(Object object) { if (this == object) return true; if (object == null) return false; if (HibernateProxyUtils.isNotEffectiveClassEquals(object, this)) { return false; } EmployeeRole that = (EmployeeRole) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { return HibernateProxyUtils.hashCode(this); } }