java - 如何使用 Spring Boot 在 JSON 中包含 ID

标签 java spring-boot

我正在使用 Spring Boot,我有一个 User 类和一个 UserRepository 接口(interface)。

当我从 REST API 获取用户时,它会以 JSON+HAL 格式返回列表,其中包含除主键 id 之外的所有用户及其属性,这是最重要的,因为我想在 URL 中使用它来编辑用户...

ID 属性在 User 类中声明如下。

@Id
@Column
@GeneratedValue
private Long id;

这是非常标准的存储库,甚至没有定制。

@RepositoryRestResource(path = "users")
  public interface UserRepository extends CrudRepository<User, Long> {
}

我需要进行一些调整才能将 id 包含在用户列表中吗?

这是一个黑匣子,我不知道该怎么办...

最佳答案

默认情况下不公开 id 属性。

您需要在 RepositoryRestConfiguration 上使用 exposeIdsFor 方法

类似于:

@Configuration
public class MyConfiguration extends RepositoryRestMvcConfiguration {

    @Override
    protected void repositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.exposeIdsFor(User.class);
    }
}

关于java - 如何使用 Spring Boot 在 JSON 中包含 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579217/

相关文章:

java - 自定义过滤器突然破坏@WebMvcTest

java - SMS 服务所需的类或接口(interface)?

java - 解析更新对象而不更改updatedAt

java - PF Wizard 不进行下一步吗?

java - 违反 RFC 2109 : host > minus domain may not contain any dots

java - 将多个子DTO设计成单个请求Spring Boot

java - Spring Boot 自定义 http 错误响应?

spring-boot - 命令行中的 server.port 不适用于 Spring Cloud 配置服务器和 eureka 服务器

java - 无法在 spring boot 应用程序中 Autowiring 接口(interface)

java - servlet 未响应 ajax 请求