【问题标题】:Spring Data Rest does not fetch nested objects from Neo4jSpring Data Rest 不会从 Neo4j 获取嵌套对象
【发布时间】:2015-07-31 01:25:45
【问题描述】:

在 Object 中的“_links”之后,返回的 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应该返回一个用户,但它返回一个用户对象,其中所有属性都是null,除了链接,这是正确的。

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

【问题讨论】:

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


    【解决方案1】:

    感觉有点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(),即使对象已经被填充。​​

    更好的主意,有人吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多