将数据Map到ExtendedObject时,出现“neo4j.com.example.entity.ExtendedObject不是已知实体”

ovfsdjhp  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(110)
@Node("label")
public class Object extends  Auditable<String> implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    ....
//getter 
//setter
//constructor

}

public class ExtendedObject extends Object{

    private Long projectId;
    private String projectName;
    private Long clientID;
 
// extra field which i don't want to store in entity but want to retrieve while fetching the Object

}

@Repository
public interface ObjectRepo extends Neo4jRepository<Object, Long> {

@Query("")
List<ExtendedObject> findPosition(@Param("comparison") String comparison);

}

字符串
我在必要的时候提供了必要的注解。
我想把查询结果Map到一个ExtendedObject,但它抛出错误:

neo4j.com.example.entity.ExtendedObject is not a known entity

hwamh0ep

hwamh0ep1#

这是因为Spring Data Neo4j需要repository方法的返回类型来匹配我们为repository本身扩展的任何对象。例如,如果ObjectRepo正在扩展Neo4jRepository<Object,Long>,则存储库中的所有方法都必须返回Object类型。否则,SDN不知道如何Map结果。要纠正这一点,您可以将存储库更改为ExtendedObject并返回该子实体。
我已经创建了一个示例存储库,显示了所有要复制的说明。https://github.com/JMHReif/extendedobject-not-known-entity-exception
另外,作为旁注,您可以在ExtendedObject类中使用@ReadOnlyProperty注解,以确保只读取属性而不写入。上面的Github项目中也包含了一个使用它的例子。:)

相关问题