当前位置: 首页 > 知识库问答 >
问题:

Spring数据Neo4j“找不到类型的属性”异常

唐宏壮
2023-03-14

我正在尝试将现有项目转换为使用Spring数据和Neo4j,但我遇到了一些问题。当我尝试生成项目时,我得到以下异常:

[etc. ...]
Caused by: 
org.springframework.data.mapping.PropertyReferenceException: No property get found for type com.myproject.models.SuperNode
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:75)
[... etc.]

我似乎找不到任何关于为什么会出现这个错误的好信息,我也不确定到底是什么导致了这个错误。

以下是大部分超节点类:

@NodeEntity
public class SuperNode extends AbstractMapValues {

    @GraphId
    private Long superNodeId;

    @NotNull
    private boolean superNodeFullyGenerated = false;

    private BaseLandType likelyLandType;

    private BaseLandType unlikelyLandType;

[methods and such]
}

它源自AbstractMapValues类:

@NodeEntity
public abstract class AbstractMapValues implements Comparable<AbstractMapValues> {

    @GraphId
    public Long id;

    @Range(min = 0, max = MAX_MAP_INT)
    private int xCoor;

    @Range(min = 0, max = MAX_MAP_INT)
    private int yCoor;

    //set only when x and y are set
    @Indexed(indexType = IndexType.POINT)
    private String wkt;

    @Range(min = BASIC_MIN, max = BASIC_MAX)
    private int percipitation;

    @Range(min = -1, max = BASIC_MAX)
    private int topography;

    @Range(min = BASIC_MIN, max = BASIC_MAX)
    private int seaLevel;

 [more int fields, but you get the picture]
 }

如您所见,这些旨在表示地图中的点。我的项目中有一个 Neo4j 空间依赖关系,它应该允许我使用索引类型.POINT。

然后我有了SuperNode的存储库。我有基本的CRUD类型存储库接口,这是一个由基本存储库实现的自定义接口,因此我可以实现自定义接口并写出需要使用Neo4j空间库的get方法。

基本回购:

public interface SuperNodeRepo extends CRUDRepository<SuperNode>, SpatialRepository<SuperNode>, SuperNodeRepoCustom {

}

自定义界面:

@NoRepositoryBean
public interface SuperNodeRepoCustom {

    public SuperNode getSuperNode(int xCoorSuperNode, int yCoorSuperNode) ;

    public List<SuperNode> getSuperNodes(int xmax, int xmin, int ymax, int ymin) ;

}

自定义实现(如您所见,它目前不完整):

公共类SuperNodeReportCustomImpl实现SuperNode ReportCustom{

public SuperNode getSuperNode(int xCoorSuperNode, int yCoorSuperNode) {
    return null;
}

public List<SuperNode> getSuperNodes(int xmax, int xmin, int ymax, int ymin) {
    return null;
}

}

我尝试过直接将@Indexed添加到SuperNode中的新字段中,但这无济于事。我尝试过它,但没有扩展spatialRepo。

当我在没有扩展自定义界面的情况下尝试时,我收到了不同的错误:

No matching bean of type [com.orclands.game.models.SuperNode] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

但我仍然不知道为什么会得到这个。所以最后,我有两个问题。A.我的自定义接口实现中有什么问题,B.除此之外还有什么问题!

任何帮助都将不胜感激!

共有1个答案

闻人修平
2023-03-14
**@Repository**
public interface SuperNodeRepo extends CRUDRepository<SuperNode>, SpatialRepository<SuperNode>, SuperNodeRepoCustom {

}
 类似资料:
  • 我正试图借助java应用程序中的spring数据来使用neo4j。目前我面临一个奇怪的问题。以下是场景。 现在,当我尝试获取所有具有指向B的RequestedTo关系的UserNode时,我得到以下异常 在这里,我使用Spring中提供的GraphRespository接口对neo4j执行以下查询。 另外,当我在neoclipse中启动此查询时,我可以看到结果中的UserNode上没有“type”

  • 嗯,我在谷歌上搜索了一下,找到了很多结果,但是没有一个能回答我的问题。所以,开始了。 我试图通过一个pinterest克隆的最小实现来研究Spring MVC和Spring Data JPA。下面是我认为与我的问题相关的代码部分。 模型/实体 服务 例外情况 异常为“的属性板”。但是,如果我没有理解错的话,属性存在于中,并且与中的正确映射。 我不明白为什么会抛出这个异常。知道为什么会这样吗? 注意

  • 我正在使用,我正在尝试组合存储库以便能够使用自定义存储库。我认为我已经正确地遵循了20.8.7创建存储库和其他类似SO问题中指定的命名约定。 总之,我做错了一些事情,因为我得到了这个 异常消息 用户实体 存储库(都在同一个包中) 服务 新4j配置

  • 我有实体,并且我希望获得按排序的所有项,但是出现错误消息的属性start。 错误日志

  • 我试图实现一个自定义Spring存储库。我有接口: 实施: 和“主”存储库,扩展我的自定义存储库: 我使用的是Spring Boot,根据文档: 默认情况下,Spring Boot将启用JPA存储库支持,并查看@SpringBootApplication所在的包(及其子包)。 当我运行应用程序时,出现以下错误: 组织。springframework。数据映射。PropertyReferenceEx