当前位置: 首页 > 知识库问答 >
问题:

如何正确地将磁通包装在单对象中

庄阿苏
2023-03-14

我有一个网络服务,可以返回学生和注册班级的详细信息。

{
  "name": "student-name",
  "classes": [
    {
      "className": "reactor-101",
      "day": "Tuesday"
    },
    {
      "className": "reactor-102",
      "day": "Friday"
    }
  ]
}

该类的DTO如下所示:

public class Student {
        private String name;
        private Flux<StudentClass> classes;
        @Data
        @AllArgsConstructor
        @JsonInclude(JsonInclude.Include.NON_DEFAULT)
        public static class StudentClass {
            private String className;
            private String day;
        }
    }
Flux<StudentClass> studentClassFlux = studentClassRepository.getStudentClass(studentName);

return Mono.just(new Student(studentName, studentClassFlux));
{
  "name": "student-name",
  "classes": {
    "prefetch": 32,
    "scanAvailable": true
  }
}
List<StudentClass> studentClassList = studentClassRepository.getStudentClass(studentName)..toStream().collect(Collectors.toList());
return Mono.just(new Student(studentName, studentClassList)); // Change the Student#classes from flux to list

共有1个答案

羊舌高峰
2023-03-14

当相互包装时,反应类型并不意味着要序列化。在这种特殊情况下,您可能希望student对象包含列表 。您可以这样实现:

public Mono<Student> findStudent(String studentName) {

    return studentClassRepository
             .getStudentClass(studentName)
             .collectList()
             .map(studentClasses -> new Student(studentName, studentClasses));
}
 类似资料:
  • 我将Rails6与WebPack一起使用。我想使用库,但我不知道我必须如何将它包含到文件中。 我的步骤: null 我的 我的

  • 知道如何在不使用Spring DM的情况下将Spring包含在OSGI项目中吗? 编辑:以下是生成的清单抱怨的内容(来自web控制台) 导出包 osgi foo.bar.service foobar.tracker 导入包org.osgi.framework,版本=[1.6,2)来自org.apache.felix.framework(0)org.osgi.util.tracker,版本=[1.5

  • 问题内容: 这是我的代码: 为什么会这样呢? 第一个和第三个对象具有相同的内容和相同的哈希值,但它们讲述了3个唯一的对象? 问题答案: 您还需要以兼容的方式进行定义–否则,相等性将基于对象身份。 在Python 2上,建议您还定义与保持一致。在Python 3上,默认实现将为您委托。

  • 问题内容: 我正在从事Spring MVC项目。我正在使用Hibernate。我想将AJAX与jQuery结合使用,以从Spring Controller中获取一些JSON。不幸的是,当我在应用程序中实现方法时,出现了一个错误: 我必须使用哪种适配器以及以哪种方式使用?该方法的最后一行发生了错误: 这是我在Spring MVC项目中与Hibernate一起使用的班级: 编辑 我想知道:我的对象是代

  • 这是我的简单代码 这条线呢 重定向到taskOKAction,但它只允许我通过URL发送参数(?task=123)。 我需要将object$task发送到taskOKAction,以便在屏幕上打印用户在表单中键入的内容。 我该怎么做?在询问好的解决方案是存储表单中的数据(例如,在数据库或文件中)并只在URL中传递对象ID的参数之前,我已经对stackoverflow发了火。我认为这是一个很好的解决

  • 问题内容: 我试图捕获与表单一起发送的文件,并在对其进行保存之前对其执行一些操作。因此,我需要在temp目录中创建此文件的副本,但是我不知道如何到达它。Shutil的功能无法复制此文件,因为没有路径。那么,是否有其他方法可以执行此操作? 我的代码: 引起: 和调试: 问题答案: 这是类似的问题,可能会有所帮助。