2

@ManyToMany 結合テーブルを 2 つのモデル (この場合は User モデルと Article モデル[1]) に追加すると、Play はこれらの変更を正しく検出し、それに応じて 1.sql[2] ファイルを変更します。

[1]
+    @ManyToMany
+    public List<User> authors;

+    @ManyToMany(mappedBy="authors")
+    public List<Article> authoredArticles;

[2]
+    create table articles_users (
+      articles_id                    bigint not null,
+      users_id                       bigint not null,
+      constraint pk_articles_users primary key (articles_id, users_id)
+    );

+    alter table articles_users add constraint fk_articles_users_articles_01 foreign key (articles_id) references articles (id);
+    alter table articles_users add constraint fk_articles_users_users_02 foreign key (users_id) references users (id);

# --- !Downs

+    drop table if exists articles_users cascade;

ただし、この関係を使用するページを開くと、適用が必要な進化に関するメッセージは表示されず、代わりに次のエラーが表示されます。

PersistenceException: Query threw SQLException:ERROR: relation "articles_users" does not exist

適用する必要があるデータベース スキーマに変更を加えたことを Play が検出しないのはなぜですか?

4

1 に答える 1