@GraphId
と@Index
のアノテーションの差異を誰でも解説できますか?org.neo4j.ogm.annotation
? 今のところ、ドキュメントを読んだら、Neo4j内部ロジックの識別子を作成するのに、@GraphId
が使用されているようで、時間の経過とともに再利用できるため、ユーザーはそれに頼るべきではありません。しかし、@Index
はどうですか?私が理解したよう春のデータNeo4j @GraphIdと@Index
、グラフベースのデータベースの主な利点は、私たちが行う必要があるすべてはちょうどその開始からグラフをトラバースしているので、物事は、容易になる起動するノード/関係を知っていたら、ノード。索引付けはそうするのに役立ちます。したがって、START n = node:index_name(property_name = value)
のようなものを書くことができ、インデックスされたノードからグラフを「property_name」プロパティで即座にexloringすることができます。あなたはString name
プロパティは@Index
でアノテートされて見ることができるように
@ToString
@NodeEntity(label = "Event")
@NoArgsConstructor
public class Event{
public Event(String eventName, LocalDate dateTime){
this.name = eventName;
this.date = dateTime;
}
public Event(Long id, String eventName, LocalDate dateTime){
this(eventName, dateTime);
this.id = id;
}
@Getter
@GraphId
private Long id;
@Getter
@Index(unique = true, primary = true)
@Property(name = "name")
private String name;
@Getter
@Property(name = "date")
@Convert(DateConverter.class)
private LocalDate date;
}
:
ので、このエンティティを検討してください。実際に名前= 'something'のノードから開始するCypherクエリを書くにはどうすればよいですか?インデックス名は何ですか?または、Spring Data Neo4j 4.2.0.RELEASEは、MATCH (event:Event {name = 'somehting'} ...
と書いたときにそれ自体を把握していますか?ここで
@Repository
public interface EventRepository extends Neo4jRepository<Event, String>{
Event findOne(String eventName);
}
レポジトリクラスとあなたは私がリポジトリを管理するエンティティのIDの種類としてString
を使用しています表示される場合がありますので、私は春がEvent findOne(String eventName);
name
プロパティを使用して仮定として
はい、これをチェックしてください。これは、http://graphaware.com/neo4j/2015/01/16/neo4j-graph-model-design-labels-versus-indexed-properties.htmlを助けるかもしれません。 – pvpkiran