Я работаю с веб-приложением, созданным на основе Spring Roo 1.0.2.Я определил объект, который имеет столбец первичного ключа PERSONID, а также несколько других полей.
@Id
@Column(name = "PERSONID", precision = 10, scale = 0)
private Long personId;
@Size(max = 50)
@Column(name = "NAME")
@NotNull
private String name;
...
Интеграционные тесты, управляемые Roo, содержат функцию, которая создает экземпляр фиктивного объекта и заполняет каждый из не-Idfields.
public Person PersonDataOnDemand.getNewTransientPerson(int index) {
Person obj = new Person();
obj.setName("name_" + index);
//set other non-Id fields
return obj;
}
Эта функция вызывается из интеграционных тестов и впоследствии завершается ошибкой, поскольку таблица базы данных имеет ненулевое ограничение для столбца PERSONID.Я попытался явно установить аннотацию @NotNull для столбца personId, но это не имеет никакого эффекта.Я подозреваю, что это как-то связано с тем фактом, что PERSONID является неавтоматизированным первичным ключом.
Я знаю, что могу решить эту проблему, переопределив интеграционные тесты и заполнив сам Id, но я бы хотел этого избежатьесли возможно.Кто-нибудь знает, как я могу автоматически заполнить это поле в управляемых объектах DataOnDemand?