我曾经暴露了在实体中用@Id注释的主键.ID字段只在资源路径上可见,但在JSON主体上不可见。
答案 0 :(得分:12)
您可以使用实体级别的RepositoryRestConfigurerAdapter
进行配置。
@Configuration
public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(MyEntity.class);
}
}
请注意使用这个你正在违反spring-data-rest的原则 - sdr促使超媒体能够通过使用链接在资源之间导航来使用API - 这里你的资源被链接识别和引用,因此不再需要ID。在客户端上使用ID会将构建资源链接的复杂性推向客户端。客户不应该为这些知识烦恼。
答案 1 :(得分:1)
最好的解决方案是不使用实体的ID,并使用超媒体提供的链接引用。 您只需要根据Spring Data Rest使用的HAL规范解析JSON。