ハイバーナイドの配列オブジェクトマッピングの実装方法は何ですか?
Hibernateでは、@ElementCollectionアノテーションを使用して、配列オブジェクトをデータベースにマッピングすることができます。
最初に、エンティティクラスで配列オブジェクト属性を定義し、@ElementCollection注釈を使用してその属性をマークする必要があります。同時に、@CollectionTableと@Column注釈を使用して、コレクションテーブルの名前と列名を定義する必要があります。
例えば、Userエンティティクラスがあり、String型の配列オブジェクトaddressesを含んでいる場合、配列オブジェクトをマッピングする方法は以下のように実装できます。
@Entity
public class User {
@Id
private Long id;
@ElementCollection
@CollectionTable(name = "user_addresses", joinColumns = @JoinColumn(name = "user_id"))
@Column(name = "address")
private String[] addresses;
// getters and setters
}
上記のコードでは、@ElementCollectionアノテーションが、そのプロパティをコレクション型として注釈付けし、@CollectionTableアノテーションがコレクションテーブルの名前を”user_addresses”として指定し、joinColumns属性を使用してUserテーブルと関連するフィールドを指定し、@Columnアノテーションがコレクションテーブル内の列名を”address”として指定しています。
Userエンティティオブジェクトを保存する際、配列オブジェクトのaddressesは、各住所がそのテーブルの1行に保存される”user_addresses”というコレクションテーブルにマッピングされます。