【问题标题】:Spring Convert enity manager getResultList results to JSONSpring将实体管理器getResultList结果转换为JSON
【发布时间】:2020-05-30 15:19:35
【问题描述】:

我对 spring 很陌生,我正在使用 spring entitymanager.createquery 进行查询并从数据库中获取结果。

所以当做一个 http get 时,这个方法会执行来获取所有的病人姓名

    public List<PatientModel> fetchallpatients (){
        Query q = entityManager.createNativeQuery("select * from patient p ");
       List <PatientModel> patientList=q.getResultList();
        System.out.println(patientList);
        return patientList;
    }

它正在返回

[[
    1,
    "patientname",
    "patientphone",
    "patientgender",
    "patientinsurance",
    "patientage",
    "patientdiagnosis",
    "patientaddreq",
    "patientemr"
],
[
    2,
    "test",
    "patientphone",
    "patientgender",
    "patientinsurance",
    "patientage",
    "patientdiagnosis",
    "patientaddreq",
    "patientemr"
],
[
    3,
    "react",
    "12312",
    "male",
    "react",
    "56",
    "dsa",
    "ads",
    "das"
],
[
    4,
    "sign",
    "asd",
    "male",
    "react",
    "56",
    "Diagnose 2",
    "Ventilator",
    "on"
],
[
    5,
    "good",
    "3213",
    "male",
    "react",
    "56",
    "Diagnose 3",
    "ICU",
    "on"
] ]

我正在使用 React 前端,我需要这些数据为 JSON 格式。

我有一个对应表的 POJO 类:

package io.login.model;

import java.io.Serializable;

public class PatientModel  {

    String patientname;
    String patientage;
    String patientgender;
    String patientinsurance;
    String patientphone;
    String patientaddreq;
    String patientemr;


    public String getPatientname() {
        return patientname;
    }

    public void setPatientname(String patientname) {
        this.patientname = patientname;
    }

    public String getPatientage() {
        return patientage;
    }

    public void setPatientage(String patientage) {
        this.patientage = patientage;
    }

    public String getPatientgender() {
        return patientgender;
    }

    public void setPatientgender(String patientgender) {
        this.patientgender = patientgender;
    }

    public String getPatientinsurance() {
        return patientinsurance;
    }

    public void setPatientinsurance(String patientinsurance) {
        this.patientinsurance = patientinsurance;
    }

    public String getPatientphone() {
        return patientphone;
    }

    public void setPatientphone(String patientphone) {
        this.patientphone = patientphone;
    }

    public String getPatientdiagnosis() {
        return patientdiagnosis;
    }

    public void setPatientdiagnosis(String patientdiagnosis) {
        this.patientdiagnosis = patientdiagnosis;
    }

    public String getPatientaddreq() {
        return patientaddreq;
    }

    public void setPatientaddreq(String patientaddreq) {
        this.patientaddreq = patientaddreq;
    }

    public String getPatientemr() {
        return patientemr;
    }

    public void setPatientemr(String patientemr) {
        this.patientemr = patientemr;
    }

    String patientdiagnosis;

    public PatientModel(String patientname, String patientage, String patientgender, String patientinsurance, String patientphone, String patientdiagnosis, String patientaddreq, String patientemr) {
        this.patientname = patientname;
        this.patientage = patientage;
        this.patientgender = patientgender;
        this.patientinsurance = patientinsurance;
        this.patientphone = patientphone;
        this.patientdiagnosis = patientdiagnosis;
        this.patientaddreq = patientaddreq;
        this.patientemr = patientemr;
    }


}

但我需要像

这样的结果
    { { "patientname":"xyz" 
"patientphone":"xyz" 
"patientinsurance":"xyz" 
"patientgender":"xyz" 
"patientdiagnosis":"xyz" 
"patientaddreq":"xyz" ... so on

    }
    }

【问题讨论】:

    标签: java spring spring-boot rest jpa


    【解决方案1】:

    您返回 List&lt;String[]&gt; 并希望它是您的 POJO 的 JSON 列表?

    更改您的方法以返回预期的内容,例如:

      @Transactional
      public List<PatientModel> fetchallpatients () {
          Query q = entityManager.createNativeQuery("select * from patient p ");
          List <PatientModel> patientList = q.getResultList();
          System.out.println(patientList);
          return patientList;
      }
    

    【讨论】:

    • 还是一样,返回的是List而不是json。我忘了在问题中添加这个。我现在将对其进行编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-09-24
    • 2020-06-23
    相关资源
    最近更新 更多