3

Neo4j DBにノードを挿入しました。データベースからノードを選択して、特定のクラスにキャストします。

この問題に関するコードは次のとおりです。

class Service {
    Neo4jTemplate neo4jTemplate

    @Transactional
    def find() {
        def id1 = 11
        //Knowledge k = neo4jTemplate.findOne(1, Knowledge)
        Result result = neo4jTemplate.query("start n=node(11) return ID(n),n.name,n.age;", null)
    //how to cast the result to User class
        println "the tpye of result called User is  "+   result.to(User.class).is(cn.edu.bnuz.itc.bok.sub2.User.class)
    }

}

次のようなノードに関する詳細:

+-------------------------------------------------------------------------+
| Node[11]{career:"programmer",name:"kelvin",age:35,introduce:"lazy doy"} |
+-------------------------------------------------------------------------+

        @NodeEntity
        class User {
        @GraphId
        Long id;
        String name;
        int age;
}

ノードのID、名前、年齢をdbから取得し、それをUserクラスに入れたいだけです。しかし、それは多くの方法で何度も失敗しました。

ここで、次のような問題が発生しました:結果をターゲットクラスにキャストするにはどうすればよいですか?たくさんのキャスト方法を試しましたが、やっと失敗しました。よろしくお願いします。

4

1 に答える 1

1

クエリからユーザーノードを返し、引数として目的のクラスを使用してto、返されたのメソッドを呼び出します。Result

Result result = neo4jTemplate.query("start n=node(11) return n", null);
for(User u : result.to(User.class)) {
    doSomethingWith(u);
}

次のような暗号クエリをサポートするリポジトリの使用を検討することをお勧めします。

public interface UserRepository extends GraphRepository<User> {
    @Query("start n=node(11) return n")
    Iterable<User> getUser11();
}
于 2012-12-13T12:28:14.850 に答える