0

neo4j-graphdatabase スタンドアロン サーバーを操作するには、Spring Data Neo4j 4.0.0.M1 の依存関係を pom に追加します。

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-neo4j</artifactId>
    <version>4.0.0.M1</version>
</dependency>

ところで。私は独自の CDI 拡張機能を作成し、JavaEE 6 で使用しています (テスト済みで動作します)。

私は自分のアプリケーションで人を管理します。したがって、updatedTime ですべての人の順序を取得したい場合は、次の簡単なクエリを my で使用しますPersonRepository (GraphRepository<Person>)

public interface PersonRepository extends GraphRepository<Person> {

    @Query("MATCH (person:Person) " +
            "Return person " +
            "ORDER BY person.updatedTime DESC " +
            "SKIP {0} " +
            "LIMIT {1} ")
    Iterable<Person> findAll(int offset, int maxResults);
}

私のテストでは、3 つのステートメントを持つ 3 人を作成しました。

1.

"statement":"CREATE (n:Person {createdTime:946717810000,
creator:'test-151658',updatedTime:978340210000,
updater:'test-151658',sic:'sic-141226',gender:'MALE'})"

2.

"statement":"CREATE (n:Person {createdTime:946717810000,
creator:'test-151658',updatedTime:1041412210000,
updater:'test-151658',sic:'sic-141402',gender:'MALE'})"

3.

"statement":"CREATE (n:Person {createdTime:946717810000,
creator:'test-151658',updatedTime:1104570610000,
updater:'test-151658',sic:'sic-105603',gender:'MALE'})"

updatedTime DESC で注文されたすべての人を取得するには、次を使用します。

Iterable<Person> results = repository.findAll(0, 100);

と取得しないでください

Person 1: updatedTime:1104570610000,
Person 2: updatedTime:1041412210000,
Person 3: updatedTime:978340210000

しかし

Person 1: updatedTime:1041412210000,
Person 2: updatedTime:978340210000,
Person 3: updatedTime:1104570610000 

それをデバッグするために私は使用します sudo ngrep -t -d any port 7474

...そして、私のneo4jサーバーからのコミットは問題ありませんでした:

    {"commit":"http://neo4j:7474/db/dat
      a/transaction/833/commit","results":[{"columns":["person"],
    "data":[{"graph":{"nodes":[{"id":"266","labels":["Person"],"properties":{"creator":"test-151658","createdTime":946717810000,
    "updatedTime":1104570610000,
"updater":"test-151658",
    "sic":"sic-105603","gender":"MALE"}}],"relationships":[]}},{"graph":{"nodes":[{"id":"265","labels":["Person"],
    "properties":{"creator":"test-151658",
    "createdTime":946717810000,"updat
          edTime":1041412210000,"updater":"test-151658","sic":"sic-141402","gender":"MALE"}}],
    "relationships":[]}},{"graph":{"nodes":[{"id":"264",
    "labels":["Person"],"properties":{"creator":"test-151658"
    ,"createdTime":
          946717810000,"updatedTime":978340210000,
    "updater":"test-151658","sic":"sic-141226","gender":"MALE"}}],"relationships":[]}}]}],
    "transaction":{"expires":"Mon, 20 Jul 2015 10:03:42 +0000"}
    ,"errors":[]} 

だから今私の質問は:

1. 3 人の正しい順序を得るにはどうすればよいですか?

Iterable<Person>2. この問題はobject-graph-mapping への変換に依存しますか?

3. この問題は、neo4j セッションからのキャッシングに依存していますか?

4

1 に答える 1