您如何使用neo4j定制spring data rest中的自我、家长和孩子链接
我正在使用SpringDataREST在neo4j上创建一个API。我不想在我的URL中公开nodeId,因此我有一个UUID。更多信息请点击此处: 如何修改spring数据rest自动生成的链接,以反映对UUID而不是nodeId的更改 谢谢 ----更新---您如何使用neo4j定制spring data rest中的自我、家长和孩子链接,neo4j,spring-data-neo4j,spring-data-rest,Neo4j,Spring Data Neo4j,Spring Data Rest,我正在使用SpringDataREST在neo4j上创建一个API。我不想在我的URL中公开nodeId,因此我有一个UUID。更多信息请点击此处: 如何修改spring数据rest自动生成的链接,以反映对UUID而不是nodeId的更改 谢谢 ----更新--- public类CustomBackendIdConverter实现BackendIdConverter{ @自动连线 实习再安置实习再安置; @凌驾 可从请求id(字符串id,类entityType)公开序列化{ 返回id; } @
public类CustomBackendIdConverter实现BackendIdConverter{
@自动连线
实习再安置实习再安置;
@凌驾
可从请求id(字符串id,类entityType)公开序列化{
返回id;
}
@凌驾
公共字符串toRequestId(可序列化id,类entityType){
if(entityType.equals(PracticeArea.class)){
PracticeArea c=(PracticeArea)id;
返回c.getPracticeAreaId().toString();
}
返回id.toString();
}
@凌驾
公共布尔支持(类分隔符){
返回true;
}
}
Spring数据REST有一个BackendIdConverter
SPI接口,用于实现将发现的URI的标识部分转换为存储库的findOne(…)
方法中使用的内容
只需创建一个执行双向转换的接口实现,并将其注册为ApplicationContext中的SpringBean,SpringDataREST就会自动获取它。感谢您的回复。我正试着按照你的建议做,并以此为基准。在PracticeArea c=(PracticeArea)id处抛出错误;我想不需要按照答案中的建议创建另外两个类吗?
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;
}
}