@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 が検出しないのはなぜですか?