2012-03-02 98 views
1

我使用Spring Data,Neo4j和Jackson來提供JSON API。我有一個簡單的用戶類是這樣的:NodeEntity的唯一約束條件

@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使用在URL中id屬性。是否有可能將此字段設置爲唯一? (如在RDBMS)

現在我可以用相同的ID創建多個用戶:

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

我想在第二save或者,至少一個例外,我想更換DB中的第一個用戶。

謝謝。

回答

0

是否可以使用@GraphId?

+0

看來,'@ Graphid's是自動生成的(只有'Long')。我想自己設置ID。 – 2012-03-02 16:42:46

+0

http://static.springsource.org/spring-data/data-neo4j/docs/2.0.0.RC1/api/org/springframework/data/neo4j/annotation/GraphId.html說:「字段的類型應該很長「,手段是否也可以是其他類型? ^^ – hilbert 2012-03-02 18:33:05