Spring 接口中的数据 Neo4J findByName(String name) returns 不正确的结果

Spring Data Neo4J findByName(String name) in interface returns incorrect results

我使用的是 4.0.0.M1

    Organisation microsoft = organisations.findByName("Microsoft");
    if (microsoft == null) {
        microsoft = new Organisation("Microsoft");
        organisations.save(microsoft);
    }

    Organisation apple = organisations.findByName("Apple");
    if (apple == null) {
        apple = new Organisation("Apple");
        organisations.save(apple);
    }

    Organisation checkMicrosoft = organisations.findByName("Microsoft");

我案例中的最后一行崩溃,因为 2 个结果被 returned 并且 Neo4J 正在尝试 return 一个 Iteratable

出于某种原因,findByName('Microsoft') 的行为与 findAll() 相同;

界面

public interface Organisations extends GraphRepository<Organisation> {

   Organisation findByName(String name);

}

节点实体

@NodeEntity
public class Organisation {

    public Organisation() {
        // Empty Constructor
    }

    public Organisation(String name) {
        this.name = name;
    }

    @GraphId
    Long id;

    @Property
    String name;
}

这是一个错误,还是我做错了什么?

这是 4.0.0-M1 中的错误。它已在快照构建 4.0 中修复。0.BUILD-SNAPSHOT

您需要将此存储库添加到您的 pom 中才能获取它:

    <repository>
        <id>spring-libs-snapshot</id>
        <url>http://repo.spring.io/libs-snapshot</url>
    </repository>

希望对您有所帮助