Spring Data Rest Mongo - 如何使用id而不是URI创建DBRef?

时间:2016-05-03 10:24:10

标签: spring spring-data-mongodb spring-data-rest

我有以下实体,它引用了另一个实体。

class Foo {
    String id;
    String name supplierName;
    **@DBRef** TemplateSchema templateSchema;
...
}

我希望能够使用以下JSON(或类似)来创建新实体。

{
    "supplierName": "Stormkind",
    "templateSchema": "572878138b749120341e6cbf"
}

...但看起来Spring强迫你使用这样的URI:

{
    "supplierName": "Stormkind",
    "templateSchema": "/template-schema/572878138b749120341e6cbf"
}

有没有办法通过发布ID而不是URI来创建DBRef?

谢谢!

1 个答案:

答案 0 :(得分:3)

在REST中,存在的唯一ID形式是URI(因此名称为Unique Resource Identifier )。像572878138b749120341e6cbf这样的东西不能识别资源/template-schema/572878138b749120341e6cbf

在HTTP级别,实体不存在,只有URI标识的资源。这就是Spring Data REST期望您使用URI作为标识符的原因。