@Unique не имеет никакого эффекта в DataNucleus с NeoDatis
Использование хранилища данных JDO / DataNucleus / NeoDatis
Я добавил @Unique в поле персистентного объекта, однако мне разрешено создавать несколько объектов, которые нарушают ограничение уникальности. Документы для DataNucleus / NeoDatis предполагают, что уникальные поля поддерживаются.
@PersistenceCapable
public class User {
@Persistent
@Unique
private String username;
//...
}
Если я добавлю несколько объектов в БД с одним и тем же именем пользователя, проблем не возникнет.
2 ответа
Решение
Похоже, что реализация DataNucleus для NeoDatis не поддерживает уникальные атрибуты. В NeoDatis требуется, чтобы вы добавили уникальный индекс в поле (см. Ссылку ниже для форумов NeoDatis, описывающих это).
http://sourceforge.net/projects/neodatis-odb/forums/forum/619814/topic/3409305
Вы указали имя для своего уникального ограничения?
@Unique(name="USERNAME_IDX")
private String username;