R2DBC は現在、複合キーをサポートしていません。今のところ、多対多の関係をどのように実装できるのだろうか?
たとえば、次の 2 つのエンティティがあるとします。
@Table
class Item(
@Id var id: Long?,
var title: String,
var description: String,
)
@Table
class Tag(
@Id
var id: Long?,
var title: String,
var color: String,
)
およびそれらのスキーマ:
CREATE TABLE item (
id SERIAL PRIMARY KEY NOT NULL,
title varchar(100) NOT NULL,
description varchar(500) NOT NULL
);
CREATE TABLE tag (
id SERIAL PRIMARY KEY NOT NULL,
title varchar(100) NOT NULL,
color varchar(6) NOT NULL
);
多対多マッピング用のテーブルを作成できます。
CREATE TABLE item_tag (
item_id bigint NOT NULL,
tag_id bigint NOT NULL,
PRIMARY KEY(item_id, tag_id)
);
ItemTag
しかし、kotlin/java でマッピング クラスをどのように定義すればよいのでしょうか。
@Table
class ItemTag(
// ??????????????????????? @Id ?????????????????????
var itemId: Long,
var tagId: Long,
)
それとも省略しても@Id
いいですか?Repository
それでは、クラスには何もありませんか?それでいいと思います。これが唯一の意味ですか?