Jenis penghitungan dalam rangka kerja Spring digunakan untuk mewakili satu set nilai pemalar yang dipratentukan Ia digunakan terutamanya dalam cara berikut: Isytiharkan jenis penghitungan dan gunakan anotasi @Enumerated untuk menentukan strategi kegigihan (EnumType.ORDINAL atau EnumType. STRING) Kes praktikal: Kebenaran pengguna Jenis penghitungan boleh digunakan dalam sistem pengurusan untuk mewakili kebenaran pengguna, dan anotasi @CollectionTable boleh digunakan untuk mengaitkan dengan model pengguna untuk mengurus kebenaran pengguna dengan mudah dan mengekalkan pemalar penghitungan. . cara untuk menggunakannya bersama-sama adalah seperti berikut:
1 Isytiharkan jenis enumerasi
Pertama, anda perlu mengisytiharkan jenis enumerasi:
public enum Role { ADMIN, USER, GUEST }
2 Gunakan
dalam Sebelum menggunakan jenis terhitung, anda perlu menentukan strategi kegigihannya menggunakan anotasi @Enumerated
. Spring menyediakan dua strategi:
EnumType.ORDINAL
: Menyimpan nilai jujukan pemalar penghitungan dalam pangkalan data (bermula dari 0). EnumType.STRING
: Menyimpan nilai rentetan pemalar penghitungan dalam pangkalan data. public enum Role { // 枚举常量 ADMIN, USER, GUEST }
Kes praktikal: Pengurusan hak pengguna
Pertimbangkan sistem pengurusan hak pengguna di mana pengguna boleh mempunyai hak yang berbeza. Anda boleh menggunakan jenis penghitungan berikut untuk mewakili kebenaran:
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Enumerated(EnumType.STRING) private Role role; }
Anda kemudian boleh mengaitkan jenis penghitungan public enum Permission {
READ,
WRITE,
DELETE
}
@Enumerated
注解
在使用枚举类型之前,你需要使用 @Enumerated
注解指定其持久化策略。Spring 提供了两种策略:
EnumType.ORDINAL
:将枚举常量的顺序值存储在数据库中(从 0 开始)。EnumType.STRING
:将枚举常量的字符串值存储在数据库中。@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; @Enumerated(EnumType.STRING) @CollectionTable( name = "user_permissions", joinColumns = @JoinColumn(name = "user_id") ) @Column(name = "permission") private Set<Permission> permissions; }
实战案例:用户权限管理
考虑一个用户权限管理系统,其中用户可以拥有不同的权限。你可以使用以下枚举类型来表示权限:
rrreee然后,可以将 Permission
枚举类型与用户模型关联:
在 User
类中,permissions
属性是一个 Set4021e4fcee2d18f954cbe4ec9db50982
,用于存储用户的权限。通过使用 @CollectionTable
Dalam kelas User
, kebenaran ialah Set4021e4fcee2d18f954cbe4ec9db50982
yang digunakan untuk menyimpan kebenaran pengguna. Dengan menggunakan anotasi @CollectionTable
, Spring akan menggunakan jadual tambahan untuk menyimpan perhubungan antara pengguna dan kebenaran.
Dengan cara ini, anda boleh mengurus kebenaran pengguna dengan mudah dan menggunakan ciri penukaran automatik Spring untuk menukar antara objek berterusan dan pemalar penghitungan.
Atas ialah kandungan terperinci Bagaimanakah jenis penghitungan Java berfungsi dengan rangka kerja Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!