私は Play Framework 2.0 (Java) を使用していますが、グローバルに単純な InitialData を実装した後、問題が発生しています。私は使用しています
私は2つのモデルを持っています:
- ユーザー(IDとしての電子メール)
- SomeModel(IDとして長いID)
SomeModel には次のようなフィールドがあります。
@ManyToOne
public User user;
そのため、ユーザーには多くの SomeModels が接続されています。
私の InitialData では、何かをテストするためにユーザーを追加していました: test@test.com.
したがって、このテスト ユーザーに SomeModel を追加しようとしても、複数追加しようとしても問題はありません。
InitialData に SomeModel (TestModel を呼び出すことができます) を追加したとき、すべてがこの TestModel で実行されていたので、問題はないと思いました。しかし今、新しい SomeModel をテスト ユーザーに追加しようとすると、次の問題が発生することがわかりました。
[PersistenceException: ERROR executing DML bindLog[] error[Unique index or primary key violation: "PRIMARY_KEY_D ON PUBLIC.SOME_MODEL(ID)"; SQL statement:\n insert into some_model (id, name, description, user_email) values (?,?,?,?) [23505-158]]]
これは私の InitialData ファイルです:
# Users
users:
- !!models.User
email: test@test.com
name: Test test
password: test
# SomeModels
somemodels:
- !!models.FuzzySystem
id: 1
name: test
description: test
user: !!models.User
email: test@test.com
私はこれで迷っています =(