Java SpringDataREST不从Neo4j获取嵌套对象
在对象的“_links”之后,返回的Json对象为空。我想这是因为SDN中缺少自动延迟抓取 有没有一种简单的方法可以让SDR在返回对象之前提取它们? 例如:Java SpringDataREST不从Neo4j获取嵌套对象,java,spring-boot,spring-data-neo4j,spring-data-rest,Java,Spring Boot,Spring Data Neo4j,Spring Data Rest,在对象的“_links”之后,返回的Json对象为空。我想这是因为SDN中缺少自动延迟抓取 有没有一种简单的方法可以让SDR在返回对象之前提取它们? 例如: ../questions/1131返回以下JSON: { //... "_links" : { "self" : { "href" : "http://localhost:8080/api/questions/1131" }, "askedBy" : { "href" : "http:
../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
在将这些嵌入对象转换为JSON之前,我如何告诉SDR获取它们?这感觉有点像黑客,但我找到了一个可行的解决方案
@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;
}
};
}
@Bean
@交易的
公共资源处理器fetchProcessor(){
返回新的ResourceProcessor(){
@自动连线
Neo4jTemplate模板;
@凌驾
公共资源流程(资源){
最终对象内容=resource.getContent();
如果(内容!=null){
模板获取(内容);
}
返回资源;
}
};
}
此外,我认为这有点过分,因为它调用template.fetch()
,即使对象已经填充
谁有更好的主意