【问题标题】:How can you customise self, parent, children links in spring data rest with neo4j如何使用 Neo4j 自定义 Spring Data 中的 self、parent、children 链接
【发布时间】:2015-03-27 05:38:18
【问题描述】:

我正在使用 spring data rest 在 neo4j 上创建 API。我不想在我的 URL 中公开 nodeId,因此我有一个 UUID。更多信息在这里:

How can I change neo4j Id to UUID and get finder methods to work?

如何修改 spring-data-rest 自动生成的链接以反映对 UUID 而不是 nodeId 的更改?

谢谢

----更新---

public class CustomBackendIdConverter implements BackendIdConverter {

@Autowired
PracticeAreaRepository practiceAreaRepository;

@Override
public Serializable fromRequestId(String id, Class<?> entityType) {
    return id;
}

@Override
public String toRequestId(Serializable id, Class<?> entityType) {
    if(entityType.equals(PracticeArea.class)) {
        PracticeArea c = (PracticeArea) id;
        return c.getPracticeAreaId().toString();
    }
    return id.toString();
}

@Override
public boolean supports(Class<?> delimiter) {
    return true;
}
}

【问题讨论】:

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


    【解决方案1】:

    Spring Data REST 有一个 BackendIdConverter SPI 接口供您实现,以将作为 URI 的标识部分发现的内容转换为您在存储库的 findOne(…) 方法中使用的任何内容。

    只需创建一个执行双向转换的接口的实现,并将其注册为您的 ApplicationContext 中的 Spring bean,它将被 Spring Data REST 自动拾取。

    【讨论】:

    • 感谢您的回复。我正在尝试执行您的建议并将其用作基线stackoverflow.com/questions/23801575/…。在 PracticeArea c = (PracticeArea) id 处抛出错误;我是否需要按照该答案中的建议创建其他两个类,我猜不需要?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2015-11-24
    相关资源
    最近更新 更多