1

我正在使用 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;
    }
}

我正在使用URL 中@Indexedid属性。有没有可能将此字段设置为唯一的?(如在 RDBMS 中)

现在我可以创建许多具有相同 id 的用户:

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

我想要第二个例外,save或者至少我想替换数据库中的第一个用户。

谢谢你。

4

2 回答 2

3

我在 Stack Overflow 上提问。同一天,发布了一个新的 Spring-Data-Neo4j 里程碑……修复了DATAGRAPH-181问题并添加了对唯一索引的支持。

只需要像这样注释字段:

@Indexed(unique=true) 
于 2012-03-03T14:20:18.630 回答
0

是否可以为此使用@GraphId?

于 2012-03-02T15:39:16.387 回答