間にマッピング テーブルがある 2 つのテーブル間の多対多の関係で、2 番目のエンティティの ID のみを読み込むにはどうすればよいですか。
以下は、ここで達成したいことを説明する例です。以下はサンプルスキーマです
create table user(
id int PrimaryKey,
name text
)
create table pages (
id int PrimaryKey,
page_name text
)
create table user_page (
id_user int,
id_page int,
PrimaryKey (id_user, id_page)
)
注: ユーザー テーブルとページ テーブルには追加の列がありますが、簡潔にするためにここには含めていません。
ユーザー エンティティ:
@Entity
@Table(name = "user")
public class User {
@id
@column(name="id")
private Integer id;
@column(name="name")
private String name;
...
...
}
@Entity
@Table(name = "page")
public class Page {
@id
@column(name="id")
private Integer id;
@column(name="page_name")
private String name;
...
...
}
私がやりたいことは、クラスに別の属性Set<Integer> pageIds
を追加User
し、このコレクション内のユーザーにすべてのページ ID をマップすることです。
Hibernateを使用してこれを行うにはどうすればよいですか?