@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
型
1条答案
按热度按时间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项目中也包含了一个使用它的例子。:)