ハイバネートの生成戦略は何ですか? (Hibernate no seisei senryaku wa nan desu ka?)
Hibernateは主キー生成を扱うために様々な生成戦略を提供するJavaの永続化フレームワークです。
Hibernateの生成戦略には、次のものが含まれています:
- 自己増加戦略(GenerationType.IDENTITY):データベースの自己増加フィールドを使用して主キーを生成します。MySQL、SQL Serverなどの自己増加フィールドをサポートするデータベースに適しています。
- 序列戦略(GenerationType.SEQUENCE):データベースのシーケンスを使用して主キーを生成します。OracleやPostgreSQLなどのシーケンスをサポートするデータベースに適しています。
- テーブル生成戦略(GenerationType.TABLE):主キーを生成するためにデータベーステーブルを使用します。この戦略を使用すると、Hibernateは主キーを生成するための特定のテーブルを作成し、毎回一意の値をそのテーブルから取得します。
- UUIDの戦略(GenerationType.UUID):主キーを生成するためにUniversally Unique Identifier(UUID)を使用します。Hibernateは、独自のUUIDを自動的に生成して主キーとして使用します。
- 自作のポリシー(GenerationType.AUTO):主キーを生成するためにカスタム生成ポリシーを使用します。開発者は、IdentifierGeneratorインターフェースを実装することで、カスタム主キー生成ポリシーを作成できます。
開発者は、エンティティクラスの主キーのフィールドに注釈を使用して生成戦略を指定することができます。例えば:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
以上の例では、主キーを生成するために自動増加戦略が使用されています。