ホームページ  >  記事  >  Java  >  Java 列挙型は Spring フレームワークでどのように機能しますか?

Java 列挙型は Spring フレームワークでどのように機能しますか?

WBOY
WBOYオリジナル
2024-05-04 13:45:011172ブラウズ

Spring フレームワークの列挙型は、事前定義された定数値のセットを表すために使用されます。主に次の方法で使用されます。列挙型を宣言し、@Enumerated アノテーションを使用して永続化戦略 (EnumType.ORDINAL または) を指定します。実際のケース: ユーザー権限管理システムでは、列挙型を使用してユーザー権限を表すことができ、@CollectionTable アノテーションを使用してユーザー モデルに関連付けることで、ユーザー権限を簡単に管理し、列挙型定数を保持できます。

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

Spring フレームワークでの Java 列挙型の使用

Spring フレームワークでは、グループを表すために列挙型が使用されます。事前定義された定数値。例:

public enum Role {
    ADMIN,
    USER,
    GUEST
}

Spring フレームワークで列挙型を使用する主な方法は次のとおりです。

1. 列挙型を宣言します。 まず、列挙型を宣言する必要があります:

public enum Role {

    // 枚举常量
    ADMIN,
    USER,
    GUEST
}

2。列挙型を使用する前に、

@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

列挙型をユーザー モデルに関連付けることができます: <pre class='brush:java;toolbar:false;'>@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; @Enumerated(EnumType.STRING) @CollectionTable( name = &quot;user_permissions&quot;, joinColumns = @JoinColumn(name = &quot;user_id&quot;) ) @Column(name = &quot;permission&quot;) private Set&lt;Permission&gt; permissions; }</pre> in

User

このクラスでは、permissions 属性は Set4021e4fcee2d18f954cbe4ec9db50982 であり、ユーザーの権限を保存するために使用されます。 @CollectionTable アノテーションを使用することにより、Spring は補助テーブルを使用してユーザーと権限の間の関係を保存します。 これにより、ユーザー権限を簡単に管理し、Spring の自動変換機能を使用して永続オブジェクトと列挙定数の間で変換を行うことができます。

以上がJava 列挙型は Spring フレームワークでどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。