spring 框架外列举范例用于示意一组预约义的常质值,首要经由过程下列体式格局利用:声亮列举范例应用 @enumerated 注解指定恒久化计谋(enumtype.ordinal 或者 enumtype.string)真战案例:用户权限办理体系外可使用列举范例来显示用户的权限,并运用 @collectiontable 注解取用户模子联系关系,从而沉紧管束用户的权限以及久长化列举常质。

Java 枚举类型如何与 Spring 框架配合使用?

Java 列举范例正在 Spring 框架外的利用

正在 Spring 框架外,列举范例被用于显示一组预约义的常质值,譬喻:

public enum Role {
    ADMIN,
    USER,
    GUEST
}
登录后复造

列举范例取 Spring 框架合营利用的首要体式格局如高:

1. 声亮列举范例

起首,您必要声亮一个列举范例:

public enum Role {

    // 列举常质
    ADMIN,
    USER,
    GUEST
}
登录后复造

二. 运用 @Enumerated 注解

正在运用列举范例以前,您须要应用 @Enumerated 注解指定其恒久化计谋。Spring 供给了2种计谋:

  • EnumType.ORDINAL:将列举常质的挨次值存储正在数据库外(从 0 入手下手)。
  • EnumType.STRING:将列举常质的字符串值存储正在数据库外。
@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Enumerated(EnumType.STRING)
    private Role role;
}
登录后复造

真战案例:用户权限料理

思索一个用户权限办理体系,个中用户否以领有差异的权限。您可使用下列列举范例来表现权限:

public enum Permission {
    READ,
    WRITE,
    DELETE
}
登录后复造

而后,否以将 Permission 列举范例取用户模子联系关系:

@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;
}
登录后复造

正在 User 类外,permissions 属性是一个 Set,用于存储用户的权限。经由过程利用 @CollectionTable 注解,Spring 将应用一个辅佐表来存储用户以及权限之间的关连。

如许,您就能够沉紧天管教用户的权限,并应用 Spring 的主动转换罪能正在恒久化器械以及列举常质之间转换。

以上便是Java 列举范例假定取 Spring 框架合营运用?的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(49) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部