2

我正在使用 Play Framework 2.0 (Java),但是在 Globals 中实现了一个简单的 InitialData 之后,我遇到了一些问题。我正在使用

我有 2 个模型:

  • 用户(电子邮件作为 ID)
  • SomeModel(长 id 作为 ID)

SomeModel 有一个字段,如:

@ManyToOne
  public User user;

所以在 and 有一个 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

我迷失在这=(

4

1 回答 1

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
于 2012-11-11T00:38:19.623 回答