尝试在Globals.InitialData之后添加模型时出现PersistenceException

时间:2012-11-11 00:31:49

标签: playframework-2.0 h2 ebean

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

我有2个型号:

  • 用户(电子邮件身份证)
  • SomeModel(Long id as 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

我迷失了=(

1 个答案:

答案 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