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

时间:2015-05-19 09:35:57

标签: java spring-boot spring-data-neo4j spring-data-rest

关注" _links"从Object返回Json对象为空。我想这是因为SDN中缺少自动延迟抓取。

是否有一种简单的方法可以告诉SDR在返回对象之前获取对象?

示例:

.../questions/1131返回以下JSON:

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

单击.../questions/1131/askedBy应该返回一个用户,但它会返回一个User对象,其中所有属性都是null,但链接除外。

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

1 个答案:

答案 0 :(得分:0)

感觉有点hackish,但我找到了一个有效的解决方案。

@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()

更好的主意,任何人?