R2DBC 目前不支持复合键。我想知道我们现在如何实现多对多关系?
例如,给定两个实体:
@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
吗?我想那会很好。这是唯一的暗示吗?