我正在使用Play Framework 2.0(Java),但在Globals中实现一个简单的InitialData后,我遇到了一些问题。 我正在使用
我有2个型号:
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
我迷失了=(
答案 0 :(得分:4)
所以,我刚刚发现initialData不应该有SomeModel的ID ...
删除ID字段后,一切正常。
这就是我的initialData文件:
# Users
users:
- !!models.User
email: test@test.com
name: Test test
password: test
# SomeModels
somemodels:
- !!models.FuzzySystem
name: test
description: test
user: !!models.User
email: test@test.com