首页 > 解决方案 > 打字稿前端未检索到 Java 后端发送属性

问题描述

我不明白为什么在我的 http Get Call 中,一个属性是由后端发送的,但不是在前端接收的。

我有这门课:

/**
 * A Saison.
 */
@Entity
@Table(name = "saison")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Saison implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;

    @NotNull
    @Pattern(regexp = "^2[0-9]{3}$")
    @Column(name = "annee_saison", nullable = false, unique = true)
    private String anneeSaison;

    @Column(name = "est_active_saison")
    private Boolean estActiveSaison;

    @Column(name = "param_jour_lundi")
    private Boolean paramJourLundi;

    @Column(name = "param_jour_mardi")
    private Boolean paramJourMardi;

    @Column(name = "param_jour_mercredi")
    private Boolean paramJourMercredi;

    @Column(name = "param_jour_jeudi")
    private Boolean paramJourJeudi;

    @Column(name = "param_jour_vendredi")
    private Boolean paramJourVendredi;

    @Column(name = "param_jour_samedi")
    private Boolean paramJourSamedi;

    @Column(name = "param_jour_dimanche")
    private Boolean paramJourDimanche;

    @Column(name = "param_mois_janvier")
    private Boolean paramMoisJanvier;

    @Column(name = "param_mois_fevrier")
    private Boolean paramMoisFevrier;

    @Column(name = "param_mois_mars")
    private Boolean paramMoisMars;

    @Column(name = "param_mois_avril")
    private Boolean paramMoisAvril;

    @Column(name = "param_mois_mai")
    private Boolean paramMoisMai;

    @Column(name = "param_mois_juin")
    private Boolean paramMoisJuin;

    @Column(name = "param_mois_juillet")
    private Boolean paramMoisJuillet;

    @Column(name = "param_mois_aout")
    private Boolean paramMoisAout;

    @Column(name = "param_mois_septembre")
    private Boolean paramMoisSeptembre;

    @Column(name = "param_mois_octobre")
    private Boolean paramMoisOctobre;

    @Column(name = "param_mois_novembre")
    private Boolean paramMoisNovembre;

    @Column(name = "param_mois_decembre")
    private Boolean paramMoisDecembre;

    @OneToMany(mappedBy = "saison")
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
    @JsonIgnoreProperties(value = { "saison" }, allowSetters = true)
    private Set<Seance> seances = new HashSet<>();

    // jhipster-needle-entity-add-field - JHipster will add fields here
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Saison id(Long id) {
        this.id = id;
        return this;
    }

    public String getAnneeSaison() {
        return this.anneeSaison;
    }

    public Saison anneeSaison(String anneeSaison) {
        this.anneeSaison = anneeSaison;
        return this;
    }

    public void setAnneeSaison(String anneeSaison) {
        this.anneeSaison = anneeSaison;
    }

    public Boolean getEstActiveSaison() {
        return this.estActiveSaison;
    }

    public Saison estActiveSaison(Boolean estActiveSaison) {
        this.estActiveSaison = estActiveSaison;
        return this;
    }

    public void setEstActiveSaison(Boolean estActiveSaison) {
        this.estActiveSaison = estActiveSaison;
    }

    public Boolean getParamJourLundi() {
        return paramJourLundi;
    }

    public void setParamJourLundi(Boolean paramJourLundi) {
        this.paramJourLundi = paramJourLundi;
    }

    public Boolean getParamJourMardi() {
        return paramJourMardi;
    }

    public void setParamJourMardi(Boolean paramJourMardi) {
        this.paramJourMardi = paramJourMardi;
    }

    public Boolean getParamJourMercredi() {
        return paramJourMercredi;
    }

    public void setParamJourMercredi(Boolean paramJourMercredi) {
        this.paramJourMercredi = paramJourMercredi;
    }

    public Boolean getParamJourJeudi() {
        return paramJourJeudi;
    }

    public void setParamJourJeudi(Boolean paramJourJeudi) {
        this.paramJourJeudi = paramJourJeudi;
    }

    public Boolean getParamJourVendredi() {
        return paramJourVendredi;
    }

    public void setParamJourVendredi(Boolean paramJourVendredi) {
        this.paramJourVendredi = paramJourVendredi;
    }

    public Boolean getParamJourSamedi() {
        return paramJourSamedi;
    }

    public void setParamJourSamedi(Boolean paramJourSamedi) {
        this.paramJourSamedi = paramJourSamedi;
    }

    public Boolean getParamJourDimanche() {
        return paramJourDimanche;
    }

    public void setParamJourDimanche(Boolean paramJourDimanche) {
        this.paramJourDimanche = paramJourDimanche;
    }

    public Boolean getParamMoisJanvier() {
        return paramMoisJanvier;
    }

    public void setParamMoisJanvier(Boolean paramMoisJanvier) {
        this.paramMoisJanvier = paramMoisJanvier;
    }

    public Boolean getParamMoisFevrier() {
        return paramMoisFevrier;
    }

    public void setParamMoisFevrier(Boolean paramMoisFevrier) {
        this.paramMoisFevrier = paramMoisFevrier;
    }

    public Boolean getParamMoisMars() {
        return paramMoisMars;
    }

    public void setParamMoisMars(Boolean paramMoisMars) {
        this.paramMoisMars = paramMoisMars;
    }

    public Boolean getParamMoisAvril() {
        return paramMoisAvril;
    }

    public void setParamMoisAvril(Boolean paramMoisAvril) {
        this.paramMoisAvril = paramMoisAvril;
    }

    public Boolean getParamMoisMai() {
        return paramMoisMai;
    }

    public void setParamMoisMai(Boolean paramMoisMai) {
        this.paramMoisMai = paramMoisMai;
    }

    public Boolean getParamMoisJuin() {
        return paramMoisJuin;
    }

    public void setParamMoisJuin(Boolean paramMoisJuin) {
        this.paramMoisJuin = paramMoisJuin;
    }

    public Boolean getParamMoisJuillet() {
        return paramMoisJuillet;
    }

    public void setParamMoisJuillet(Boolean paramMoisJuillet) {
        this.paramMoisJuillet = paramMoisJuillet;
    }

    public Boolean getParamMoisAout() {
        return paramMoisAout;
    }

    public void setParamMoisAout(Boolean paramMoisAout) {
        this.paramMoisAout = paramMoisAout;
    }

    public Boolean getParamMoisSeptembre() {
        return paramMoisSeptembre;
    }

    public void setParamMoisSeptembre(Boolean paramMoisSeptembre) {
        this.paramMoisSeptembre = paramMoisSeptembre;
    }

    public Boolean getParamMoisOctobre() {
        return paramMoisOctobre;
    }

    public void setParamMoisOctobre(Boolean paramMoisOctobre) {
        this.paramMoisOctobre = paramMoisOctobre;
    }

    public Boolean getParamMoisNovembre() {
        return paramMoisNovembre;
    }

    public void setParamMoisNovembre(Boolean paramMoisNovembre) {
        this.paramMoisNovembre = paramMoisNovembre;
    }

    public Boolean getParamMoisDecembre() {
        return paramMoisDecembre;
    }

    public void setParamMoisDecembre(Boolean paramMoisDecembre) {
        this.paramMoisDecembre = paramMoisDecembre;
    }

    public Set<Seance> getSeances() {
        return this.seances;
    }

    public Saison seances(Set<Seance> seances) {
        this.setSeances(seances);
        return this;
    }

    public Saison addSeance(Seance seance) {
        this.seances.add(seance);
        seance.setSaison(this);
        return this;
    }

    public Saison removeSeance(Seance seance) {
        this.seances.remove(seance);
        seance.setSaison(null);
        return this;
    }

    public void setSeances(Set<Seance> seances) {
        if (this.seances != null) {
            this.seances.forEach(i -> i.setSaison(null));
        }
        if (seances != null) {
            seances.forEach(i -> i.setSaison(this));
        }
        this.seances = seances;
    }

    // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof Saison)) {
            return false;
        }
        return id != null && id.equals(((Saison) o).id);
    }

    @Override
    public int hashCode() {
        // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
        return getClass().hashCode();
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "Saison{" +
            "id=" + getId() +
            ", anneeSaison='" + getAnneeSaison() + "'" +
            ", estActiveSaison='" + getEstActiveSaison() + "'" +
            "}";
    }
}

和链接实体降神会:

 @Entity
    @Table(name = "seance")
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
    public class Seance implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
        @SequenceGenerator(name = "sequenceGenerator")
        private Long id;
    
        @NotNull
        @Column(name = "date_seance", nullable = false)
        private LocalDate dateSeance;
    
        @NotNull
        @Pattern(regexp = "(^0{0,1}[0-9]|^[1]{1}[0-9]|^[2]{1}[0-3])H[0-5]{1}[0-9]{1}$")
        @Column(name = "heure_debut_seance", nullable = false)
        private String heureDebutSeance;
    
        @ManyToOne
        private Saison saison;
    
        // jhipster-needle-entity-add-field - JHipster will add fields here
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public Seance id(Long id) {
            this.id = id;
            return this;
        }
    
        public LocalDate getDateSeance() {
            return this.dateSeance;
        }
    
        public Seance dateSeance(LocalDate dateSeance) {
            this.dateSeance = dateSeance;
            return this;
        }
    
        public void setDateSeance(LocalDate dateSeance) {
            this.dateSeance = dateSeance;
        }
    
        public String getHeureDebutSeance() {
            return this.heureDebutSeance;
        }
    
        public Seance heureDebutSeance(String heureDebutSeance) {
            this.heureDebutSeance = heureDebutSeance;
            return this;
        }
    
        public void setHeureDebutSeance(String heureDebutSeance) {
            this.heureDebutSeance = heureDebutSeance;
        }
    
        public Saison getSaison() {
            return this.saison;
        }
    
        public Seance saison(Saison saison) {
            this.setSaison(saison);
            return this;
        }
    
        public void setSaison(Saison saison) {
            this.saison = saison;
        }
    
        // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
    
        @Override
        public boolean equals(Object o) {
            if (this == o) {
                return true;
            }
            if (!(o instanceof Seance)) {
                return false;
            }
            return id != null && id.equals(((Seance) o).id);
        }
    
        @Override
        public int hashCode() {
            // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
            return getClass().hashCode();
        }
    
        // prettier-ignore
        @Override
        public String toString() {
            return "Seance{" +
                "id=" + getId() +
                ", dateSeance='" + getDateSeance() + "'" +
                ", heureDebutSeance='" + getHeureDebutSeance() + "'" +
                "}";
        }
    }

还有这个资源

@GetMapping("/saison/{id}")
public ResponseEntity<Saison> getSaisons(@PathVariable Long id) {
    log.debug("REST request to get Saisons : {}", id);
    Optional<Saison> saisons = saisonRepository.findById(id);
    return ResponseUtil.wrapOrNotFound(saisons);
}

所有属性都可用,包括“降神会” 在此处输入图像描述

在前端,我有一个调用服务的方法:

changementSaisonDansListe(): void {
    if (this.saisonIdSelectionnee) {
      this.saisonService.find(this.saisonIdSelectionnee).subscribe(res => {
        if (res.body) {
          this.saisonSelectionnee = res.body;
        }
      }, () => {
        // TODO Remplacer avec Gestion des erreurs
        // this.loadAll();
      })
    }
  }

以及指向后面的服务:

      find(id: number): Observable<EntityResponseType> {
    return this.http.get<ISaison>(`${this.resourceUrlSaison}/${id}`, { observe: 'response' });
  }

端点:

  public resourceUrlSaison = this.applicationConfigService.getEndpointFor('api/saison');

但是当我检查服务返回的内容时,属性“seance”总是为空: 在此处输入图像描述

编辑 1

与 SOPAUI 相同: 在此处输入图像描述

编辑 2

很奇怪...如果我将后端置于调试中并在返回之前放置一个断点并在调试控制台中显示属性“会话”的值,它们会显示在 SOAPUi 上,但只有我在调试中看到的那些控制台(而不是其他人)!

标签: jwtbackendrest

解决方案


发现,我的实体没有更新所有属性(包括“降神会”),因为我在它们生成之后添加了它们......它似乎工作!


推荐阅读