0
我試圖在我的Play應用中使用initial-data.yaml文件設置JUnit測試,就像在包含Play的示例zentasks應用中一樣。在Play框架中測試模型:initial-data.yaml失敗驗證
我的應用程序有用戶,用戶可以創建一個負載,因此負載與用戶有多對一的關聯。在我Load.java模型,我的代碼:
@ManyToOne
@JoinColumn(name="uid",nullable=false)
public User user;
和User.java:
@OneToMany(mappedBy="user")
public Set<Load> loads;
在應用程序/ conf目錄/初始data.yaml,我正在嘗試設置
用戶:
- !!models.User
id: 1
username: rachael
password: secret
name: Rachael P
email: [email protected]
userclass: 1
- !!models.User
id: 2
username: wildbill
password: secret
name: Billy Z
email: [email protected]
userclass: 1
- !!models.User
id: 3
username: sammydude
password: secret
name: Sammy
userclass: 0
負載:
了兩個負載,象這樣的用戶,以作爲測試數據使用- !!models.Load
id: 1
user: !!models.User
id: 3
created: 2013-1-4 10:00:00 -05:00
modified: 2013-1-5 15:30:00 -05:00
invoiceNumber: 324
billOfLadingNumber: 435d
proNumber: 334mqr86547tr
status: PENDING
rawCharge: 25.00
totalWeight: 50.00
numPallets: 1
units: box(es)
- !!models.Load
id: 2
user: !!models.User
id: 2
created: 2013-1-4 10:00:00 -05:00
modified: 2013-1-5 15:30:00 -05:00
invoiceNumber: 328
billOfLadingNumber: 97re
proNumber: 43y43j5yh4
status: PENDING
rawCharge: 60.00
totalWeight: 400.00
numPallets: 1
units: box(es)
在app/Global.java,線條Ebean.save(all.get("users"));
和Ebean.save(all.get("loads"));
編譯沒有錯誤,但我得到了如下的錯誤validation failed for: models.User
:
for(Object load : all.get("loads")) {
// Insert load/user relation
Ebean.saveAssociation(load, "user");
}
任何人能發現這個錯誤嗎?我一遍又一遍地瞭解代碼,但據我所知,我正在使用正確的方法來保存關聯。我想不出爲什麼它會分別保存用戶和負載沒有問題,但保存關聯時出錯。