我使用spring data rest来创建neo4j上的API。我不想在我的网址中公开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;
}
}
答案 0 :(得分:2)
Spring Data REST有一个BackendIdConverter
SPI接口,您可以实现将发现的URI的识别部分转换为您在存储库中使用的任何内容{{1} 1}}方法。
只需创建此接口的实现,该接口执行双向转换并在ApplicationContext中将其注册为Spring bean,它将由Spring Data REST自动获取。