暗号クエリと数値インデックスに問題がある
@Indexed(unique = true, numeric = false)
private Long accountId;
戻り値:
neo4j-sh (0)$ start n=node:Principal(accountId = '1') return n;
+---------------------------------------------------------------------------------------------+
| n |
+---------------------------------------------------------------------------------------------+
| Node[41722]{__type__:"example.package.Principal",accountId:1,name:"Simple User"} |
+---------------------------------------------------------------------------------------------+
1 row
しかし
@Indexed(unique = true, numeric = true)
private Long accountId;
戻り値:
neo4j-sh (0)$ start n=node:Principal(accountId = '1') return n;
+---+
| n |
+---+
+---+
0 row
neo4j 1.9.2
spring-data-neo4j 2.3.0.RC1
私が正しく理解していれば、これはこの議論で議論されるかもしれませんが、それはかなり古いですか?
アップデート:
私が使用する場合
@Indexed(unique = true, numeric = false)
別の興味深いことが起こります。関係が存在するかどうかを確認します(実際にはデータベースに存在します):
count(r) は 0 に等しい - 不正解:
Long accountId = 1L;
Map<String, Object> result = template.query(
"START child=node:Principal(accountId='{childId}') " +
"MATCH child-[r:IS_MEMBER_OF]->parent " +
"RETURN count(r)", MapUtil.map("childId", accountId)).singleOrNull();
count(r) は 1 に等しい - 正しい:
Long accountId = 1L;
Map<String, Object> result = template.query(
"START child=node:Principal(accountId='1') " +
"MATCH child-[r:IS_MEMBER_OF]->parent " +
"RETURN count(r)",null).singleOrNull();