0

我有一个 Neo4J 数据库,其中包含带有名称属性的标签“公司”的节点:

neo4j-sh (?)$ match (n:Company {name:"SmallCo"}) return n;
+--------------------------+
| n                        |
+--------------------------+
| Node[16]{name:"SmallCo"} |
+--------------------------+
1 row

我正在尝试使用 Spring Data 制作一个 Web 应用程序。

我的存储库类:

@RepositoryRestResource(collectionResourceRel = "companies", path = "companies")
public interface CompanyRepository extends GraphRepository<Company> {
    Company findByName(@Param("name") String name);
 ...

公司领域对象类:

@JsonIdentityInfo(generator=JSOGGenerator.class)
@NodeEntity
public class Company {
    @GraphId Long id;

    String name; 

 public String getName() {
        return name;
    }

服务等级:

@Service
@Transactional
public class InfoService {

    @Autowired CompanyRepository companyRepository;

主要的:

@Configuration
@Import(MyNeo4jConfiguration.class)
@RestController("/")
public class SampleApplication extends WebMvcConfigurerAdapter {

    public static void main(String[] args) throws IOException {
        final Logger logger = LoggerFactory.getLogger(Neo4jConfiguration.class);
        SpringApplication.run(SampleApplication.class, args);
    }

    @Autowired
    InfoService infoService;

但是,当我运行应用程序时,此查询不会返回任何内容:

http://localhost:8080/companies/search/findByName?name=SmallCo

如果我通过调试器运行它,查询方法会抛出 NullPointerException。我在这里想念什么?

编辑:

我在控制台上看到了这个警告:

14:17:28.432 [main] WARN  o.s.d.n.m.Neo4jPersistentProperty - Owning ClassInfo  is null for field: java.lang.String     main.java.info.spring.data.neo4j.domain.Company.name and propertyDescriptor: org.springframework.beans.GenericTypeAwarePropertyDescriptor[name=name]

堆栈跟踪没有帮助 - 它只是 []

4

1 回答 1

0

问题是我忘记在 SessionFactory 构造函数的配置类中更新包名。

于 2016-02-17T19:42:33.983 回答