如何使用exists,findOne和其他GraphRepository方法,将id作为参数?

时间:2015-08-05 13:24:35

标签: neo4j cypher spring-data spring-data-neo4j graph-databases

让我们假设如下:

1)。我们有两个实体:

@NodeEntity
public class A {    
    @GraphId
    private Long id;
    ...
}

@NodeEntity
public class B {    
    @GraphId
    private Long id;
    ...
}

2)。我们有两个合适的存储库:

public interface ARepository extends GraphRepository<A> {
    ...    
}

public interface BRepository extends GraphRepository<B> {
    ...    
}

3)。我们在数据库中有以下节点:

  • A,id = 1
  • B,id = 2

案例a:现在假设我们需要检查ID = 2的A是否存在:

ARepository.exists(2)

我希望它会返回false,因为ID = 2的A不存在。但它返回true,因为它试图在所有ID中查找,而不仅仅是在A节点中。

案例b:或者我们需要找到ID = 1的B:

BRepository.findOne(1);

我希望它返回null或抛出相应的异常,通知id = 1的B不存在。但它让我意想不到PersistentEntityConversionException

因此问题:

  • 我们如何将上述操作用于预期的行为?
  • 可能有解决方法吗?

0 个答案:

没有答案