如何将Spring Boot RepositoryRestResource映射到特定的URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Spring Boot RepositoryRestResource映射到特定的URL相关的知识,希望对你有一定的参考价值。

参考技术A 如何将高维度空间正确映射到低维度空间?如何将分数维度空间映射到整数维度空间? 如何将异次元空间映射到维度空间? 如何在维度空间表达排列组合与概率?1、角度映射,(参与当量为无穷远时也可以叫平移映射或0角度投影);2、函数迭代映射,(在整数维空间矩阵检索迭代函数展开图形);3、参数迭代映射,(迭代维参数顺序计数次元);4、正态迭代映射,(迭代阶乘时顺序表达到每一维)。本回答被提问者采纳

我如何在 Spring Boot 中更改 Repository.findAll() 生成的 json 数组的格式

【中文标题】我如何在 Spring Boot 中更改 Repository.findAll() 生成的 json 数组的格式【英文标题】:how I change the format of the json array that made by Repository.findAll() in spring boot 【发布时间】:2021-05-29 18:19:34 【问题描述】:

我想将此 json 列表更改为另一种格式,方法是在列表前加上“数据”一词并像我放下它的示例一样包含在括号中 我使用的其余控制器

   @CrossOrigin(origins = "http://localhost:8080")
  @GetMapping("/users")
  public List<User> getAllUsers() 
    return userRepository.findAll();
  

反应是这样的

    [
            
                "id": 1,
                "firstName": "test",
                "lastName": "test",
                "email": "tt",
                "createdAt": null,
                "createdBy": "12",
                "updatedAt": null,
                "updatedBy": "12"
            ,
            
                "id": 2,
                "firstName": "test",
                "lastName": "test",
                "email": "tt",
                "createdAt": null,
                "createdBy": "12",
                "updatedAt": null,
                "updatedBy": "12"
            
        ]

我想变成那样


    "data": [
        
            "id": 1,
            "firstName": "test",
            "lastName": "test",
            "email": "tt",
            "createdAt": null,
            "createdBy": "12",
            "updatedAt": null,
            "updatedBy": "12"
        ,
        
            "id": 2,
            "firstName": "test",
            "lastName": "test",
            "email": "tt",
            "createdAt": null,
            "createdBy": "12",
            "updatedAt": null,
            "updatedBy": "12"
        
    ]
    
 

【问题讨论】:

【参考方案1】:

您可以使用 `data 属性创建另一个模型类

public class UserData 

   private List<User> data
   // getters and setters

  

然后在控制器中更改返回类型

 @CrossOrigin(origins = "http://localhost:8080")
 @GetMapping("/users")
 public UserData getAllUsers() 
     List<User> users = userRepository.findAll();
     return new UserData(users);
  

或者如果你不想创建额外的模型,你可以使用Map&lt;String, List&lt;User&gt;&gt;

  @CrossOrigin(origins = "http://localhost:8080")
  @GetMapping("/users")
  public Map<String, List<User>> getAllUsers() 
  List<User> users = userRepository.findAll();
  return Collections.singletonMap("data",users);

【讨论】:

以上是关于如何将Spring Boot RepositoryRestResource映射到特定的URL的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 Spring Boot Web 应用不需要 @Repository?

Spring Data Redis - 对 Repository 的 @Transactional 支持

Spring Boot中JPA Repository的Save方法的单元测试

初入spring boot(八 )Spring Data REST

Spring Boot MiniDao @MiniDao vs. @Repository

Spring Boot 似乎没有找到 Repository