Я пытаюсь иметь согласованную базу данных, в которой имя пользователя и адрес электронной почты уникальны.
http://www.mongodb.org/display/DOCS/Indexes#Indexes-unique%3Atrue
http://code.google.com/p/morphia/wiki/EntityAnnotation
Мой пользовательский класс выглядит так:
public class User {
@Indexed(unique = true)
@Required
@MinLength(4)
public String username;
@Indexed(unique = true)
@Required
@Email
public String email;
@Required
@MinLength(6)
public String password;
@Valid
public Profile profile;
public User() {
...
Я использовал аннотацию @Indexed (unique=true ), но она не работает. В моей БД все еще есть дубликаты.
Любые идеи, как я могу это исправить?
Изменить:
Я читал о sureIndexes, но это кажется неправильным подходом, я не хочу загружать повторяющиеся данные, просто чтобы убедиться, что это действительно дубликат.
Я хочу заблокировать это немедленно.
что-то вроде
try{
ds.save(user);
}
catch(UniqueException e){
...
}