diff --git a/modules/core/src/main/java/com/bytedesk/core/base/BaseEntity.java b/modules/core/src/main/java/com/bytedesk/core/base/BaseEntity.java index 562f3edbbd..a625e37db7 100644 --- a/modules/core/src/main/java/com/bytedesk/core/base/BaseEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/base/BaseEntity.java @@ -79,6 +79,7 @@ public abstract class BaseEntity implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + // 已经创建唯一索引,不需要在数据库中创建普通索引 // @NotBlank 在应用层(业务逻辑或表单验证)确保uid字段在提交时必须是非空且去除空格后有实际内容的。 // nullable = false 通过@Column注解告知JPA,数据库中的uuid列不允许NULL值,这是一个数据库级别的约束 @NotBlank(message = "uid is required") diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityEntity.java b/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityEntity.java index 41cddf4987..7cb17b2e83 100755 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityEntity.java @@ -37,7 +37,12 @@ import jakarta.persistence.*; @NoArgsConstructor @AllArgsConstructor @EntityListeners({AuthorityEntityListener.class}) -@Table(name = "bytedesk_core_authority") +@Table( + name = "bytedesk_core_authority", + indexes = { + @Index(name = "idx_authority_uid", columnList = "uuid") + } +) public class AuthorityEntity extends BaseEntityNoOrg { private static final long serialVersionUID = 1L; diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationEntity.java b/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationEntity.java index 658496d12f..72ca014843 100644 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationEntity.java @@ -23,6 +23,7 @@ import com.bytedesk.core.constant.I18Consts; import com.bytedesk.core.rbac.user.UserEntity; import com.fasterxml.jackson.annotation.JsonBackReference; import jakarta.persistence.*; +import jakarta.persistence.Index; import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; @@ -40,7 +41,12 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @EntityListeners({ OrganizationEntityListener.class }) -@Table(name = "bytedesk_core_organization") +@Table( + name = "bytedesk_core_organization", + indexes = { + @Index(name = "idx_organization_uid", columnList = "uuid") + } +) public class OrganizationEntity extends BaseEntityNoOrg { private static final long serialVersionUID = 1L; diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleEntity.java b/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleEntity.java index bfe982bb5d..a2d851730e 100755 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleEntity.java @@ -14,6 +14,7 @@ package com.bytedesk.core.rbac.role; import jakarta.persistence.*; +import jakarta.persistence.Index; import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; @@ -37,7 +38,12 @@ import com.bytedesk.core.rbac.authority.AuthorityEntity; @AllArgsConstructor @NoArgsConstructor @EntityListeners({ RoleEntityListener.class }) -@Table(name = "bytedesk_core_role") +@Table( + name = "bytedesk_core_role", + indexes = { + @Index(name = "idx_role_uid", columnList = "uuid") + } +) public class RoleEntity extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/user/UserEntity.java b/modules/core/src/main/java/com/bytedesk/core/rbac/user/UserEntity.java index cdf6317dc6..014dca4cb4 100644 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/user/UserEntity.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/user/UserEntity.java @@ -20,6 +20,7 @@ import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import jakarta.persistence.FetchType; +import jakarta.persistence.Index; import jakarta.persistence.JoinColumn; import jakarta.persistence.JoinTable; import jakarta.persistence.ManyToMany; @@ -44,7 +45,12 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @EntityListeners({ UserEntityListener.class }) -@Table(name = "bytedesk_core_user") +@Table( + name = "bytedesk_core_user", + indexes = { + @Index(name = "idx_user_uid", columnList = "uuid") + } +) public class UserEntity extends BaseEntityNoOrg { private static final long serialVersionUID = 1L;