Spring 数据 Neo4j 4:findByPropertyIsNull 不工作

Spring Data Neo4j 4 : findByPropertyIsNull is not working

使用 SDN 4.0 并拥有此实体,提供兴趣树(父子)

@NodeEntity
public class Interest {
    @GraphId
    private Long id;
    private Interest parent;    
    private List<Interest> children = new ArrayList<Interest>();
    private String label;
    public Interest(){

    }
    public Interest(Interest parent, String label) {
        super();
        this.parent = parent;       
        this.label = label;
        if (this.parent!=null && !this.parent.getChildren().contains(this))
            getChildren().add(this);
    }
    public List<Interest> getChildren() {
        return children;
    }
    public void setChildren(List<Interest> children) {
        this.children = children;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Interest getParent() {
        return parent;
    }
    public void setParent(Interest parent) {
        this.parent = parent;
    }
    ....  
}

和存储库

public interface InterestRptry extends GraphRepository<Interest>{
    public Page<Interest> findAllByParentIsNull(Pageable pageRequest);//
    public List<Interest> findAllByParentIsNull();//
}

两种语法都没有返回任何元素,这是什么问题?

这可能是因为 parent 被视为 RelationChip 而不是 属性

这个查询完成工作

MATCH (i:`Interest`) WHERE not(i-[:PARENT]->()) return i

但它导致异常 Spring Data Neo4j 4 : Failed to convert from type java.util.LinkedHashSet<?> to type org.springframework.data.domain.Page<?>

SDN 4 尚不支持派生查找器的分页。 isNull 也不支持。

解决方法是使用自定义查询。