Postgres に 2 つのテーブルがあります。前者には映画に関する一般的な情報が含まれていますが、後者には俳優が含まれています。
CREATE TABLE "MOVIES" (
"ID" uuid NOT NULL,
"TITLE" character varying NOT NULL,
"YEAR" smallint NOT NULL,
"DIRECTOR" character varying NOT NULL
);
CREATE TABLE "ACTORS" (
"ID" serial NOT NULL,
PRIMARY KEY ("ID"),
"NAME" character varying NOT NULL
);
この 2 つの間に、多対多の関係を定義しました。
CREATE TABLE "MOVIES_ACTORS" (
"ID_MOVIES" uuid NOT NULL,
"ID_ACTORS" integer NOT NULL
);
ALTER TABLE "MOVIES_ACTORS"
ADD CONSTRAINT "MOVIES_ACTORS_ID_MOVIES_ID_ACTORS" PRIMARY KEY ("ID_MOVIES", "ID_ACTORS");
ALTER TABLE "MOVIES_ACTORS"
ADD FOREIGN KEY ("ID_MOVIES") REFERENCES "MOVIES" ("ID");
ALTER TABLE "MOVIES_ACTORS"
ADD FOREIGN KEY ("ID_ACTORS") REFERENCES "ACTORS" ("ID");
Scala で、映画を表す次のドメイン タイプを定義しました。
case class Movie(id: String, title: String, year: Int, actors: List[String], director: String)
Movie
Doobie ライブラリを使用して、上記の 3 つのテーブル間の結合をクラスのインスタンスにマップするにはどうすればよいですか?