我正在使用最新的Spring Data for Neo4j。 在这个项目中,我有不同的组,可通过url / group / {id} / project访问,该组应该返回用户有权访问的所有项目的列表。这个东西工作正常,但如果用户输入一个真正的大数字作为groupId数据库中不存在我得到了
org.neo4j.graphdb.NotFoundException:找不到节点400
我的查询看起来像
@Query("START a=node({userId}), b=node({groupId}) match a-[:user_belongs_to]-b return b")
GroupEntity getGroup(@Param("userId") Long userId, @Param("groupId") Long groupId);
即使我使用GraphRepository接口中的方法findOne(),我也得到了这个例外。
那么有可能告诉SDN而不是抛出这个异常返回null吗?或者我是否必须捕获每个可能的运行时异常?
我希望自己抛出异常,即NoSuchGroup,NoSuchUser ..
我正在使用SDN 3.3.0。发布。
谢谢
答案 0 :(得分:0)
如果找不到节点,则可以预料到这一点。
您不应该为此使用Neo4j node-id,而是在创建组时创建manage的自定义ID。
e.g。
`WITH
MEMBER [Measures].[1-99_Count] AS
COUNT(FILTER ([Scam].[Scam Ref].AllMembers,
([Measures].[Amount Lost]>=1 AND [Measures].[Amount Lost]<=99)))
MEMBER [Measures].[1-99_Amount] AS
SUM(FILTER ([Scam].[Scam Ref].AllMembers,
([Measures].[Amount Lost]>=1 AND [Measures].[Amount Lost]<=99)),
Iif(IsEmpty([Measures].[Amount Lost]),0,[Measures].[Amount Lost]))
SELECT {[Measures].[1-99_Count],
[Measures].[1-99_Amount]} ON COLUMNS,
[First Resolved On Date].[Month].[Month] ON ROWS
FROM [Infocentre]
WHERE ([First Resolved On Date].[Date].[Date].&[20140101]:[First Resolved On Date].[Date].[Date].&[20150623],
[Scam].[Scam Category Level1].&[{d9d6bc38-e73e-e411-9a82-0a713f2121f7}])`