在我的Neo4j / Spring Data Neo4j项目中,我有以下异常类:
public class CriterionNotFoundException extends NotFoundDomainException {
private static final long serialVersionUID = -2226285877530156902L;
public CriterionNotFoundException(String message) {
super(message);
}
}
在应用程序启动期间,我看到以下警告:
WARN o.s.d.n.m.Neo4jPersistentProperty - No identity field found for class of type: com.example.domain.dao.decision.exception.DecisionAlreadyExistsException when creating persistent property for field: null
为什么Neo4j / SDN在这个类中寻找身份字段?如何正确配置我的应用程序以跳过此警告?
答案 0 :(得分:5)
您可以忽略此警告 - 这是由SDN在构建元数据Spring Data REST集成时生成的。当然,它不应该用于例外,并且我们已经解决了这个问题。
答案 1 :(得分:1)
“正确配置[您的]应用程序”的一种方法是将EnableNeo4jRepositories
和EntityScan
批注添加到here的SpringBootApplication
(或配置bean)中,并使用Neo4J相关类指定软件包的名称。
我仅调试SDN / Neo4j代码5分钟,所以我的猜测可能不成立,但是,我相信当您不指定要扫描实体和存储库的程序包时会生成这些警告。我猜在那种情况下,SpringBoot + Neo4J映射会扫描项目中的每个类,并且如果一个类具有某些字段,但没有任何类似于“ id”字段的内容,它将发出此警告。 (因此,向带有警告的类中添加Long id
字段也可能是另一种(是的,非常丑陋的)解决方法)
当我尝试使用SpringBoot 2.0.6 + spring-data-neo4j 5.0.11在项目中明确指定包名称时,这些警告消失了。