SDN4 - 无法使用 id 列表找到 ById
SDN4 - Cannot findById with list of id
在旧版本SDN3中,我可以使用findById(List id),但是升级到SDN4后,我不能再使用这个功能,总是return空
这是我的样本 class :
@NodeEntity
public class Right{
@GraphId
Long graphId;
String id; //random generated UUID
String name;
//Properties & Constructor
}
然后我有包含这些代码的 RightRepository :
public interface RightRepository extends GraphRepository<Right> {
List<Right> findById(List<String> id);
}
无需使用 Loop 获取每个 ID,我只需调用存储库一次并获取列表(无需使用 findAll())
难道SDN4已经不支持了?还有其他解决办法吗?
正如我 post 在评论和进一步调查后,我认为自定义查询是目前满足您的要求的唯一方法。这有效:
@Query("MATCH (n:Right) WHERE n.id IN {rightIds} RETURN n")
List<Right> findRightById(@Param("rightIds") List<String> rightIds);
希望对您有所帮助
在旧版本SDN3中,我可以使用findById(List id),但是升级到SDN4后,我不能再使用这个功能,总是return空
这是我的样本 class :
@NodeEntity
public class Right{
@GraphId
Long graphId;
String id; //random generated UUID
String name;
//Properties & Constructor
}
然后我有包含这些代码的 RightRepository :
public interface RightRepository extends GraphRepository<Right> {
List<Right> findById(List<String> id);
}
无需使用 Loop 获取每个 ID,我只需调用存储库一次并获取列表(无需使用 findAll())
难道SDN4已经不支持了?还有其他解决办法吗?
正如我 post 在评论和进一步调查后,我认为自定义查询是目前满足您的要求的唯一方法。这有效:
@Query("MATCH (n:Right) WHERE n.id IN {rightIds} RETURN n")
List<Right> findRightById(@Param("rightIds") List<String> rightIds);
希望对您有所帮助