应该如何从 Spring Data Neo4j 6 中删除的 @Depth 注释迁移?

How should one migrate from the removed @Depth annotation in Spring Data Neo4j 6?

自 spring-data-neo4j 6.0 起,删除了查询方法的 @Depth 注释 (DATAGRAPH-1333, commit)。

如何将使用注释的现有 5.3 代码迁移到 6.0? migration guide.

中没有提到它

示例用法,记录在 5.3.6.RELEASE reference:

public interface MovieRepo extends Neo4jRepository<Movie, Long> {
  @Depth(1) // Default, load simple properties and its immediately-related objects 
  Optional<Movie> findById(Long id);

  @Depth(0) // Load simple properties only 
  Optional<Movie> findByProperty1(String property1);

  @Depth(2) // Load simple properties, immediately-related objects and their immediately-related objects
  Optional<Movie> findByProperty2(String property2);

  @Depth(-1) // Load whole relationship graph
  Optional<Movie> findByProperty3(String property3);
}

自定义查询是唯一的选择还是有替代品?

SDN 中不再有自定义深度。它要么加载您的 Java 模型中描述的所有内容,要么您必须提供自定义 Cypher 语句。

一些背景:在 SDN 6 中,我们完全放弃了内部会话缓存,因为我们要确保 Java 对象图在加载后与数据库图保持同步。因此,我们无法再跟踪多个操作的自定义深度。 部分加载的图表现在反映了 Java 模型的真实性,并且在持久化时可能会删除现有(但未加载)的关系。

可以在查询创建的文档部分找到一些见解。 https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#query-creation