2012-11-11 93 views
2

我使用Play Framework 2.0(Java),但在全局實現一個簡單的InitialData後,我有一些問題。 我使用PersistenceException當嘗試添加模型Globals.InitialData後

我有2種型號:

  • 用戶(如電子郵件ID)
  • SomeModel(長ID作爲ID)

而且SomeModel有一個字段,如:

@ManyToOne 
    public User user; 

所以在和有一個用戶有很多SomeModels連接到它。

在我InitialData我將用戶添加到測試出頭:[email protected]

所以,如果我嘗試將SomeModel加入到本次測試的用戶,我沒有問題,即使我嘗試添加一個以上。

當我加入SomeModel(讓我們稱之爲一個TestModel)在我認爲沒有問題的InitialData,因爲一切都在這個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:  [email protected] 
     name:  Test test 
     password: test 


# SomeModels 
somemodels: 

    - !!models.FuzzySystem 
     id:  1 
     name:  test 
     description: test 
     user:  !!models.User 
          email: [email protected] 

我丟失此=(

回答

4

所以,我剛剛發現的initialData不應該有SomeModel的ID ...

刪除ID字段後,一切都只是正常工作。

這是我的initialData文件是如何:

# Users 

users: 

    - !!models.User 
     email:  [email protected] 
     name:  Test test 
     password: test 


# SomeModels 
somemodels: 

    - !!models.FuzzySystem 
     name:  test 
     description: test 
     user:  !!models.User 
          email: [email protected] 
相關問題