Spring Data Rest 不从 Neo4j 获取嵌套对象

Spring Data Rest does not fetch nested objects from Neo4j

在对象的“_links”之后,return Json 对象是空的。我想这是因为 SDN 中缺少自动延迟抓取。

有没有简单的方法告诉 SDR 在 return 获取对象之前获取对象?

示例:

.../questions/1131return以下JSON:

{
  //...
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/questions/1131"
    },
    "askedBy" : {
      "href" : "http://localhost:8080/api/questions/1131/askedBy"
    }
    //...
  }
}

单击 .../questions/1131/askedBy 应该 return 一个用户,但它 return 是一个用户对象,其中所有属性都是 null,除了链接,这是正确的.

如何让 SDR 在将这些嵌入对象转换为 JSON 之前获取这些对象?

感觉有点老套,但我找到了可行的解决方案。

@Bean
@Transactional
public ResourceProcessor<Resource> fetchProcessor() {
    return new ResourceProcessor<Resource>() {
        @Autowired
        Neo4jTemplate template;

        @Override
        public Resource process(Resource resource) {
            final Object content = resource.getContent();
            if (content != null) {
                template.fetch(content);
            }
            return resource;
        }
    };
}

此外,我认为这有点矫枉过正,因为它调用 template.fetch() 即使对象已经填充。

有更好的主意吗?