55 lines
1.4 KiB
Java
55 lines
1.4 KiB
Java
package dev.lions.unionflow.server.entity;
|
|
|
|
import jakarta.persistence.*;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Builder;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.NoArgsConstructor;
|
|
|
|
/**
|
|
* Table de liaison entre Role et Permission
|
|
* Permet à un rôle d'avoir plusieurs permissions
|
|
*
|
|
* @author UnionFlow Team
|
|
* @version 3.0
|
|
* @since 2025-01-29
|
|
*/
|
|
@Entity
|
|
@Table(
|
|
name = "roles_permissions",
|
|
indexes = {
|
|
@Index(name = "idx_role_permission_role", columnList = "role_id"),
|
|
@Index(name = "idx_role_permission_permission", columnList = "permission_id")
|
|
},
|
|
uniqueConstraints = {
|
|
@UniqueConstraint(
|
|
name = "uk_role_permission",
|
|
columnNames = {"role_id", "permission_id"})
|
|
})
|
|
@Data
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Builder
|
|
@EqualsAndHashCode(callSuper = true)
|
|
public class RolePermission extends BaseEntity {
|
|
|
|
/** Rôle */
|
|
@NotNull
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "role_id", nullable = false)
|
|
private Role role;
|
|
|
|
/** Permission */
|
|
@NotNull
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "permission_id", nullable = false)
|
|
private Permission permission;
|
|
|
|
/** Commentaire sur l'association */
|
|
@Column(name = "commentaire", length = 500)
|
|
private String commentaire;
|
|
}
|
|
|