NodeEntity的唯一约束

时间:2012-03-02 10:06:11

标签: spring unique neo4j unique-constraint spring-data-neo4j

我正在使用Spring Data,Neo4j和Jackson来提供JSON API。我有一个像这样的简单User类:

@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属性。是否有可能将此字段设置为 unique ? (如在RDBMS中)

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

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

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

谢谢。

2 个答案:

答案 0 :(得分:3)

我问Stack Overflow。在同一天a new Spring-Data-Neo4j milestone is released ...修复了DATAGRAPH-181问题,并添加了对唯一索引的支持。

只需要像这样注释字段:

@Indexed(unique=true) 

答案 1 :(得分:0)

可以使用@GraphId吗?