我正在構建基於Spring Roo 1.0.2的Web應用程序。我已經定義了一個具有主鍵PERSONID列以及其他幾個字段的實體。DataOnDemand中未填充Spring Roo @Id字段test
@Id
@Column(name = "PERSONID", precision = 10, scale = 0)
private Long personId;
@Size(max = 50)
@Column(name = "NAME")
@NotNull
private String name;
...
Roo管理的集成測試包含一個函數,它實例化一個模擬對象並填充每個非Id字段。
public Person PersonDataOnDemand.getNewTransientPerson(int index) {
Person obj = new Person();
obj.setName("name_" + index);
//set other non-Id fields
return obj;
}
該函數從集成測試中調用,隨後由於數據庫表在PERSONID列上具有非空限制而失敗。我已經嘗試在personId列上明確設置@NotNull註釋,但它沒有效果。我懷疑這與PERSONID是非自動生成的主鍵有關。
我知道我可以通過重寫集成測試和自己填充ID來解決這個問題,但是如果可能的話,我想避免這種情況。有沒有人知道我可以讓這個字段自動填充到託管的DataOnDemand對象中?
在「正常」情況下,Spring Roo在其一個方面創建自己的ID字段(我相信xx_entity.aj) - 您是否已經取消了roo manged ID字段? - 如果你使用roo管理標識,它會工作嗎? – Ralph 2010-12-01 22:06:53