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
для класса? Думаю, это было бы хорошо. Это единственный вывод?
@Transient
вместо@ID
и загрузил бы объект, так как Composite key еще не поддерживается, я думаю. - person nicholasnet   schedule 14.04.2021DatabaseClient
для реализации. Дайте мне знать, если вам понадобится какой-либо пример. - person nicholasnet   schedule 14.04.2021@Table
на объект? - person Stuck   schedule 14.04.2021