【问题标题】:Spring Boot JPA sending information to the frontSpring Boot JPA 向前端发送信息
【发布时间】:2022-01-25 08:42:31
【问题描述】:

我正在处理包含预订的 Spring Boot 项目。 到目前为止,我已经使一切正常,但我需要将有关数据库中预订的信息发送到前端。 我有房间,在房间里面我有桌子,每张桌子都可以预订。 现在,我的问题是如何列出所有预订,将它们发送到前台,并附上他们是否被占用的信息。 当前台看到我的 api 的结果时,可以准确地知道哪个桌子有预订,哪个没有。对他来说,将我的申请放在前面是至关重要的。 我读过一些关于 @Transient 注释的东西,我可以使用类似的东西吗?

谢谢!

【问题讨论】:

  • 有很多方法可以实现这一点。如果您使用的是 Spring Data JPA,它可以通过投影使生活变得简单。您可以定义正是您想要返回的 DTO/接口,并从您的存储库中返回。

标签: java spring spring-boot spring-data-jpa


【解决方案1】:

我发现您是 stackoverflow 的新手;请查看提问指南:https://stackoverflow.com/help/how-to-ask

现在回答您的问题,我认为最适合您的情况是使用 rest API,当您处理后端部分(数据库端)中的逻辑并返回结果列表时,每个示例都有一个布尔值:isOccupied ;表示预订状态。

“我有房间,在房间里面我有桌子,每张桌子都可以有一个预订”:我认为这里的挑战是建立正确的关系(一对多和一对一)并映射到您的实体。

Transient表示序列化中忽略字段,例如可以应用于serialVersionUID。

【讨论】:

    【解决方案2】:

    好的,现在您想将办公桌状态(占用与否)发送到前端。您只需将数据库中的状态字段和办公桌 ID 发送到前端即可。

    您可以考虑在模态类上使用@JsonIgnoreProperties(value={'fields'}) 来过滤您不想发回前端的字段。

    例如,

    @JsonIgnoreProperties({ "id", "systemId" })
    class Student {
       public int id;
       public String systemId;
       public int rollNo;
       public String name;
    
       Student(int id, int rollNo, String systemId, String name){
          this.id = id;
          this.systemId = systemId;
          this.rollNo = rollNo;
          this.name = name;
       }
    }
    

    结果是

    {
       "rollNo" : 11,
       "name" : "Mark"
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-09
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 2016-09-08
      • 2016-05-09
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多