2012-03-02 15 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; 
    } 
} 

私はURLでid属性を使用する@Indexedを使用しています。このフィールドをユニークと設定する可能性はありますか?私は同じIDを持つ多くのユーザーを作成することができます今すぐ

(RDBMSのように):私は、少なくとも第二saveまたは、上の例外を希望

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

、私は交換したいのですがDBの最初のユーザー。

ありがとうございます。

答えて

3

私はスタックオーバーフローについて尋ねます。同じ日にa new Spring-Data-Neo4j milestone is released ... DATAGRAPH-181問題が修正され、一意のインデックスのサポートが追加されました。

はちょうどこのようにフィールドに注釈を付ける必要があります。

@Indexed(unique=true) 
0

そのために@GraphIdを使用することは可能ですか?

+0

'Graphid's @自動生成されている(とのみ' Long')ようです。 IDを自分で設定したいと思います。 –

+0

http://static.springsource.org/spring-data/data-neo4j/docs/2.0.0.RC1/api/org/springframework/data/neo4j/annotation/GraphId.htmlと言う:「フィールドのタイプは長いかもしれない "という意味は、他のタイプも可能ですか? ^^ – hilbert

関連する問題