无法使用 Spring 引导将节点保存到 Neo4j

Unable to save Node to Neo4j with Spring boot

我正在尝试使用 Spring 引导将节点保存到 Neo4j 数据库中并出现以下异常:

java.lang.IllegalArgumentException: Class class com.test.neo4j.model.Company is not a valid entity class. Please check the entity mapping.
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:77) ~[neo4j-ogm-core-3.2.11.jar:3.2.11]
    at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:51) ~[neo4j-ogm-core-3.2.11.jar:3.2.11]
    at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:480) ~[neo4j-ogm-core-3.2.11.jar:3.2.11]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]

下面是我的实体 class:

package com.test.neo4j.model;

import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;

@NodeEntity
public class Company {
    @Id
    private String id;
    private String name;
    public Company() {}

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

以下是我的存储库:

package com.test.neo4j.repository;

import org.springframework.data.neo4j.repository.Neo4jRepository;

import com.test.neo4j.model.Company;

public interface CompanyRepository extends Neo4jRepository<Company, String>{

}

我是 Autowiring 我服务中的 repo,并用它调用 save。现在,我查阅了其他答案并确定了以下内容:

我还遗漏了什么吗?

Company class 不是应用程序启动时启动的 class 扫描的一部分。 这可能有多种原因:

  1. 您正在使用 Spring Data Neo4j 自动启动器,没有任何特殊的包扫描配置。因此,只有实体 class 和 "sub" 包中的实体将被扫描。
  2. 您手动配置了 SessionFactory bean,并且给定的包与您的 class 所在的("sub"-)包不匹配。