Уникальное ограничение для NodeEntity - PullRequest
1 голос
/ 02 марта 2012

Я использую Spring Data, Neo4j и Jackson для обслуживания JSON API. У меня есть простой класс пользователя, как это:

@NodeEntity
@JsonAutoDetect(JsonMethod.NONE)
public class User {
    @GraphId Long internalId;
    @Indexed String id;

    public User() {}

    public User(String id) {
        this.id = id;
    }

    @JsonProperty
    public String getId() {
        return this.id;
    }
}

Я использую @Indexed для использования атрибута id в URL. Есть ли возможность установить это поле как уникальное ? (как в РСУБД)

Теперь я могу создать много пользователей с одинаковым идентификатором:

Neo4jTemplate template;
...
template.save(new User("testid"));
template.save(new User("testid"));

Я бы хотел исключение для второго save или, по крайней мере, я бы хотел заменить первого пользователя в БД.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 03 марта 2012

Я спрашиваю о переполнении стека. В тот же день выпущен новый этап Spring-Data-Neo4j ..., который исправляет проблему DATAGRAPH-181 и добавляет поддержку уникальных индексов.

Просто нужно аннотировать поле следующим образом:

@Indexed(unique=true) 
0 голосов
/ 02 марта 2012

можно ли для этого использовать @GraphId?

...