package com.yunhai.userbase.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.NotNull;
/**
* @author chenx
* @date 2026/7/27
* @description 用户-业务角色关系表(逻辑外键,无物理 FK)。
* 一个用户可绑定多个业务角色;一个角色也可绑定多个用户。
*/
@NoArgsConstructor
@Data
@Entity
@Table(
name = "sys_user_app_role_rel",
indexes = {
@Index(name = "idx_user_app_role_user", columnList = "user_id"),
@Index(name = "idx_user_app_role_role", columnList = "role_id")
},
uniqueConstraints = {
@UniqueConstraint(name = "uk_user_app_role", columnNames = {"user_id", "role_id"})
}
)
@EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false)
public class SysUserAppRoleRel extends BaseEntity {
/**
* 用户ID(逻辑外键 → SysUser.id)。
*/
@NotNull
@Column(name = "user_id", nullable = false)
private Integer userId;
/**
* 角色ID(逻辑外键 → SysAppRole.id)。
*/
@NotNull
@Column(name = "role_id", nullable = false)
private Integer roleId;
}